部落格升級HTTPS方案

weixin_34321977發表於2018-05-26

很早就想將部落格升級為HTTPS,在心中也確立了方案,步驟也很簡單:

  • 博文上傳至Git
  • Caddy結合Webhook自動更新,順便上HTTPS

流程很簡單,麻煩在於需要Caddy以及Webhook的設定,然後一臺伺服器也是必須的,這裡本人推薦使用搬瓦工的年付19.9$方案,購買之後,選擇CentOS7,安裝後進入shell:

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遠端拉取程式碼並且自動更新:

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

然後是編寫Caddyfile,這是Caddy的配置檔案,我將配置檔案寫在/etc/caddy/Caddyfile,貼上我的配置內容:

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,非常方便,啟動:

caddy -conf /etc/caddy/Caddyfile

訪問:https://www.howie6879.cn/ ,一切正常,至此,部落格算遷移完成了,現在還有一個麻煩的地方在於,每次提交更新到Git倉庫,總是需要手動下拉一次程式碼來更新網站博文,這樣感覺比較麻煩

或許可以讓Caddy每隔多長時間自動拉取最新的倉庫內容,比如60S,這樣配置:

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的事情,畢竟上面的啟動方式還是不行的:

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:

[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

至此,大功告成

相關文章