很早就想将博客升级为HTTPS,在心中也确立了方案,步骤也很简单:

  • 博文上传至Git
  • Caddy结合Webhook自动更新,顺便上HTTPS

流程很简单,麻烦在于需要Caddy以及Webhook的设置,然后一台服务器也是必须的,这里本人推荐使用搬瓦工的年付19.9$方案,购买之后,选择CentOS7,安装后进入shell:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
yum install git vim wget
# 创建用户
useradd howie
# 设定密码
passwd username
# 添加 sudo 权限
visudo
# 找到 
root  ALL=(ALL)   ALL 
# 添加 
howie  ALL=(ALL)   ALL
# 用刚创建的用户名登录
# 安装Caddy以及插件,这里我列出了我需要的插件 各位酌情选择
curl https://getcaddy.com | bash -s personal http.git,http.realip,http.ratelimit,http.ipfilter

首先是从git拉取代码,因为我们还是希望服务器可以自动从git远程拉取代码并且自动更新:

1
2
3
mkdir git
cd git
git clone https://github.com/howie6879/howie6879.github.io.git

然后是编写Caddyfile,这是Caddy的配置文件,我将配置文件写在/etc/caddy/Caddyfile,贴上我的配置内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
cd ~
mkdir /etc/caddy/
vim /etc/caddy/Caddyfile
# 输入
www.howie6879.cn {
    root /home/howie/git/howie6879.github.io
    tls xiaozizayang@gmail.com
    timeouts none
    gzip
}
howie6879.cn {
    redir www.howie6879.cn
}

# 这里需要注意,请先将ip和博客域名解析好

Caddy官方也提供了实现脚本,见这里,不过我就按照自己的习惯部署了,没有参考官方的

接下来就可以直接启动我们的博客服务了,Caddy会自动申请证书上HTTPS,非常方便,启动:

1
caddy -conf /etc/caddy/Caddyfile

访问:https://www.howie6879.cn/ ,一切正常,至此,博客算迁移完成了,现在还有一个麻烦的地方在于,每次提交更新到Git仓库,总是需要手动下拉一次代码来更新网站博文,这样感觉比较麻烦

或许可以让Caddy每隔多长时间自动拉取最新的仓库内容,比如60S,这样配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
www.howie6879.cn {
    root /home/howie/git/howie6879.github.io
    tls xiaozizayang@gmail.com
    git {
        repo     https://github.com/howie6879/howie6879.github.io.git
        path     /var/www/howie6879.github.io
        interval 60
    }
    timeouts none
    gzip
}
howie6879.cn {
    redir www.howie6879.cn
}

但这样有点浪费资源,还是做成被动触发比较好,所以还是让我们的Webhook登场吧,我暂时有点懒,懒得动。。。

最后说下,利用Supervisor管理Caddy的事情,毕竟上面的启动方式还是不行的:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
sudo yum install python-setuptools
sudo easy_install supervisor

sudo mkdir /etc/supervisord.d/
sudo echo_supervisord_conf > /etc/supervisord.conf

sudo chmod -R 777 /etc/supervisord.d/
sudo chmod -R 777 /etc/caddy/Caddyfile
sudo chmod -R 777 /etc/supervisord.conf

vim /etc/supervisord.con

mkdir ~/supervisor/
# 加上这行
[include]
files = /etc/supervisord.d/*.ini

/etc/supervisord.d/增加caddy.ini:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[program:caddy]
command      = caddy -conf=“/etc/caddy/Caddyfile”
user         = howie
process_name = %(program_name)s
autostart    = true
autorestart  = true
startsecs    = 3
redirect_stderr         = true
stdout_logfile_maxbytes = 500MB
stdout_logfile_backups  = 10
stdout_logfile          = ~/supervisor/caddy.log

至此,大功告成