本地静态资源项目托管到云服务器,本地修改,编译,部署到无服务实现实时更新:
云服务器配置
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部署到自己的服务器上