一. 开篇词
1.1 前言
官方文档介绍了 Hexo 可以同时
一键部署
到多个平台,只需要同时使用多个deployer
。
Hexo 提供了快速方便的一键部署功能,让您只需一条命令就能将网站部署到服务器上。
1 $ hexo deploy在开始之前,您必须先在
_config.yml
中修改参数,一个正确的部署配置中至少要有type
参数,例如:
1
2 deploy:
type: git您可同时使用多个 deployer,Hexo 会依照顺序执行每个 deployer。
1
2
3
4
5 deploy:
- type: git
repo:
- type: heroku
repo:
1.2. 说明
使用
Git Hooks
同步 Hexo 生成的静态文件。(后期我弃用 git,改用 rsync 了)
二. 步骤
2.1 云服务器创建 Git 仓库
1 | $ cd /opt/git/ |
2.1.2 deployer 使用 rsync 进行部署
前言:后面发现使用 git 上传至云服务器速度太慢了(不清楚啥原因),改用 rsync。
git 上传速度如下图
使 git bash 支持 rsync(Windows)
参考
https://blog.csdn.net/m0_48613893/article/details/124104757
https://blog.csdn.net/qq_38689395/article/details/125758842
如果文件重复,就跳过
如果出错就修改文件名.\usr\bin\msys-xxhash-0.8.0.dll → msys-xxhash-0.dll
./_config.yml
文件1
2
3
4
5
6
7
8
9deploy:
- type: rsync
host: IP地址
user: 使用者名称
root: 远程主机的根目录
port: 22
delete: true
verbose: true
ignore_errors: false
在传大文件(也就10M)时依旧很慢,但比前者速度快些。
2.2 配置本地Hexo _config.yml
./_config.yml
文件,同步部署GitHub、Gitee、云服务器
1 | # Deployment - 部署 |
2.3 配置 SSH 免密登录
本地 SSH 公钥 如
~/.ssh/id_rsa.pub
内容添加至云服务器~/.ssh/authorized_keys
中
2.4 部署
本地 Hexo 源文件项目下敲
1 | hexo clean ; hexo g ; hexo d |
2.5 使用 NGINX 做 Web 服务器
新增虚拟主机配置
1 | $ cat /usr/local/nginx/conf/conf.d/blog.cpen.top.conf |
最后浏览器访问 https://blog.cpen.top/
三. 注意点
配置 SSH
免密
;存储目录
授权
;给工作树路径 /opt/www/hexo 777 权限,~~一开始没授权 访问报 403,环境为 CentOS 8.2;~~原因找到了,第 5 点。
开放端口。注意是否需要在云服务器新增
安全组策略
,80、443 端口需要打开;SELinux 等原因。
403 权限问题
后面查询发现了403
的原因,Nginx 编译安装时我指定了启动用户为 普通用户(默认为 nobody),导致起的工作进程权限不够。而 Hexo 上传的新的静态文件权限不为 777。所以修改 Nginx 的启动用户为 root。
1
2
3
4$ vim /usr/local/nginx/conf/nginx.conf
user root;
$ nginx -s reload
四. 参考文章
使用 Git Hooks 部署至云服务器 新增 git 用户、授权目录