博客迁移腾讯云实战记录
源于年初的一次突发奇想,将博客站点迁移到了腾讯云,五月份终于完成了备案,然后添加了 HTTPS 支援,并完成容器化。在这里把折腾的过程记录下来。
转移腾讯云
原来的博客是放到 github page 上面,访问 antarx.com 是通过 CNAME 文件解析到 gawainx.github.io,只需要在config.yaml
配置好,写完直接hexo d -g
完事。
迁移到腾讯云之后,还想每次部署都这么方便,就免不了完成一些相关工作。
资源准备
这里准备的资源主要就是服务器的购入,可以根据自己博客的规模需要选择合适的套餐。如果是学生党记得使用学生优惠。
买完服务器就是装系统的事,根据自己的使用习惯自行选择,我用的是 ubuntu16.04.
如果想容器化的话需要安装 Docker。
安装 git
1 | sudo apt-get install git |
新建 git 裸仓库
1 | sudo mkdir /var/repo/ |
创建存放 hexo 生成的网页的文件夹
1 | sudo mkdir -p /var/www/hexo |
这两步要注意的是文件夹的 owner 问题,要实现自动部署的话一般新建一个 git 账户然后全权接管部署网页的相关工作,那么上面创建的两个文件夹在后期的 owner 记得要变更为 git 用户。
创建 git 钩子
在hexo_static.git
文件夹的 hooks 目录下面新建钩子文件并写入如下代码,然后将文件变更成可执行文件。
1 | vim /var/repo/hexo_static.git/hooks/post-receive |
自动部署
所谓自动部署,就是在每次部署的时候不需要键入密码。
在自己电脑上,创建公钥,复制到剪贴板
1 | ssh-keygen -t rsa -C "xx@xx.com" |
服务器上,切换到 git 用户(没有的话请新建),输入
1 | su git |
本地 hexo-git 配置
在config.yaml
键入
1 | deploy: |
添加 SSL 证书并容器化 Nginx
Linux 配置软件向来复杂,所以毫不犹豫选用 docker 容器进行 Nginx 部署。
输入docker pull nginx
拉取 Nginx 镜像。
首先基于镜像运行一个 nginx 容器,然后将容器里面的/etc/nginx/
目录拷贝出来。可以看到文件内容如下图
。
这里顺带一提 Nginx 的两个配置文件,nginx.conf
和deafult.conf
,一般而言修改nginx.conf
然后把deafult
里面的内容注释掉会比较妥当。
添加 SSL 证书
在拷贝出来的nginx.conf
文件,在http
的选型里面,加入以下内容
1 | server { |
如果强制使用 HTTPS,还要加上以下配置,将80端口的流量重定向到443端口。
1 | server { |
这两个 server 是独立的,都加到http
的配置里面。
顺带一提 Nginx 要求的证书是 PEM 格式。
运行博客容器
1 | docker run -d -p 443:443 -p 80:80 -v `pwd`:/etc/nginx -v /var/www/hexo:/hexo -v "$PWD/cert":/cert --name ng nginx |
这里注意到的是三个挂载卷,分别是配置文件,博客网页文件和证书文件。
容器运行之后,在腾讯云的域名管理里面添加 DNS 记录,OK,大功告成。
相关链接
在 Ubuntu 14.04 服务器上部署 Hexo 博客
Hello Hexo之静态博客搭建+自动部署
证书安装指引
Nginx 容器教程(可能无法访问)