
说明
在弄这个系统之前我的 Hexo 博客系统是部署在 Github 的托管中的(博客不咋写,折腾系统倒是在行的🤪),有很大的好处就是省事、方便,而且不需要什么额外收费,购买一个域名花上一个域名解析的钱,但是最大的痛点就是不够稳定、访问速度慢,隔三差五就部署不上去内容,或者内容不全。
为了解决上述问题,索性租一个服务器搞个备案,利用 nginx 开放端口对外访问;
关于
我对 hexo nginx 以及 git 其实都不是很熟悉;
hexo 很早之前就在用的一个轻量级静态页面生成的工具,但部署以后草草只写过寥寥几篇文章;
nginx 是一个能提供 HTTP 服务和反向代理比较易上手的服务器,hexo 生成的静态资源可以部署进去实现外网的访问;
关于 git 在这个环境下,提供的主要功能就是将 hexo 生成出来的静态页面推送到设置好的服务端,但实际上 git 的功能非常的强大可以自行了解一下;
正文
注意:以下内容都是能够正常使用 hexo 的前提下进行的;
本地与云服务器部分
服务器设置
ssh 连接服务器
执行 ssh root@ipaddress
,其中 ipaddress 是云端服务期的外网 ip,登录密码是购买服务器后在对应主页设置的密码;
安装 git 和 nginx
1 | 执行命令 |
添加 git 用户
1 | 执行命令 |
配置免密 ssh
在本地 shell 端
1 | ssh-keygen -t rsa 生成公钥 |
也可以使用简单的指令直接将公钥上传到服务器
1 | ssh-keygen -t rsa 生成公钥 |
在云服务器端
1 | su git #切换到git用户 |
创建 git 仓库以及设置 git-hooks 实现自动部署
1 | sudo mkdir /var/repo 新建 git 仓库位置 |
给以上文件的权限
1 | cd blog.git/hooks/ |
配置 nginxsudo nginx -t
查找 nginx 配置文件的路径sudo vim /etc/nginx/nginx.conf
找到 http{} 块中的 server{} 块,如果没有可以手动添加,记住实在 http{} 中;
更改(添加)以下内容
1 | server { |
给 git 的权限撤销
为了防止通过 git 用户对服务器造成危害,自己的数据安全受到威胁,因此需要将 git 的 bash 改掉;
1 | # vim /etc/passwd |
本地设置
Hexo git 设置
1 | 进入到包含 Hexo config.yml 的目录中 |
告诉 hexo 每次使用 hexo d 部署内容的时候去找云服务器中的该位置,blog.git 会根据 hooks 的配置将内容部署到 /var/hexo, nginx 回去上述路径找到静态资源并部署在服务器里;
同时这也是我理解的整个系统的工作流程;
总结
这个环境的搭建整体还是很简单的,差不多十来分钟就能够搞定,并且正常使用;