Vue项目Git托管部署远程服务器

本地静态资源项目托管到云服务器,本地修改,编译,部署到无服务实现实时更新:

云服务器配置

Git配置

添加git 用户

1
2
3
4
5
6
7
8
9
10
11
12
yum install git

useradd git
passwd git

# 给git用户配置sudo权限
chmod 740 /etc/sudoers
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行
git ALL=(ALL) ALL

chmod 400 /etc/sudoers

配置SSH公钥

1
2
3
4
5
6
su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys #将本地ssh密钥粘贴进去

工作目录与git仓库关联

若后期需要将多个项目部署到同一服务器,则需要配置多个仓库,这里以vue项目为例

1
2
3
4
5
sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/vue
cd /var/repo #转到git仓库的文件夹
sudo git init --bare vue.git #创建一个名叫vue的仓库
sudo vim /var/repo/vue.git/hooks/post-update

配置完成后重启nginx服务器,sudo service nginx reload

本地配置

静态网站部署脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
# 部署到远程服务器的Git仓库路径
REMOTE_REPO="root@47.108.177.119:/var/repo/vue.git"

# 构建Vue.js项目
npm run build

# 进入构建目录
cd dist

# 初始化并添加构建文件到Git仓库
git init
git add -A
git commit -m 'Deploy'
git checkout -b master
# 推送到远程Git仓库
git push -f $REMOTE_REPO master

# 清理临时目录
cd ..
rm -rf dist

本地更新后推送部署到服务器

1
2
# 本地更新后推送部署到服务器
./deploy.sh

8081端口配置

我这边使用的是阿里云的ECS服务器。托管这个站点。当前域名还没有备案成功,只能通过IP访问,因此只能通过不同端口来访问不同站点。80端口已经被占有,Vue站点分配端口 8081

开启防火墙中8081端口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装firewalld
yum -y install firewalld

# 运行firewalld
sudo systemctl start firewalld

# 允许TCP流量通过8081端口,并且 --permanent 标志会将规则永久保存
sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent

# 启动 firewalld 服务并设置它在系统引导时自动启动
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 重新加载防火墙规则以使更改生效
sudo firewall-cmd --reload


阿里云控制台安全策略组放行8081端口

参考

将Hexo部署到自己的服务器上