以前博客通过github page搭建的,访问速度不快,就想着搭建在自己的服务器上。虽然服务器只是 1 核 1 G 的,但是还是能跑很多应用的。
nginx配置
博客设置了3个域名访问,配置如下:
/etc/nginx/conf.d/blog.conf
1 2 3 4 5 6 7 8
| server{ listen 80; server_name www.ltinyho.top blog.ltinyho.top ltinyho.top; root /home/ltinyho/project/ltinyho.blog.io; location / { index index.html; } }
|
sudo nginx -s reload
成功访问
本来想用docker-compose 启动nginx服务的,但是出现nginx出现connet fail 111错误,应该是docker网络的问题,一时搞不定。
待以后好好学习下docker。
启动webhook服务
基本思路就是hexo deploy时,生成的静态网站会push代码到博客仓库,触发webhook,调用配置的wehook url,执行git pull,拉取最新的代码。
碰到的问题
我的代码仓库是放在mac的移动硬盘上的,创建的脚本文件默认有777的权限,而且用chmod不能更改,但是在服务器上的脚本没有执行权限。
解决方法是在mac的系统盘上增加脚本的执行权限。
其中webhook服务我是用docker跑的,但是在docker里面不能执行宿主机的脚本。看到过一种解决方案,使用ssh登录宿主机,然后执行脚本。
我的方案是启动了一个deploy服务,然后请求这个服务执行对应的脚本。注意,这个deploy服务不能使用docker跑,要不然还是一样不能执行宿主机的脚本。
我使用pm2启动deploy服务,执行对应的脚本。注意设置pm2启动的服务开机自启动。