每次我都會玩一些有的沒有的,基本上都問不到人,只能從網路上找一些資料,偏偏網路資料很多錯誤的,尤其是內地的資料,很多都是抄襲的,錯誤的地方還一模一樣,所以希望趕快筆記下來,免得我自己忘記。
前一陣子,整個從Wordpress,換到Hugo,然後研究Hugo幾個禮拜,可惜台灣幾乎沒有人玩這個,也可能有,我智障找不到,只能夠自己慢慢研究,後來終於選了一些好的版型,發現即使沒有AMP,SEO的效果也很好。
換到Hugo以後,就開始對靜態網頁這種東西著迷了,速度快,架設起來很方便,又剛好碰到Oracle推免費主機,當然趕快搶了兩台,他們主機有個特性,就是頻寬很大,但是主機慢到爆,可能都是回收的主機,可能連SSD都沒有,於是想要利用這個頻寬大的主機,只能夠利用靜態網頁的特性了,在上面架Hugo,但是…..如果這種主機使用傳統的apache,太肥大了。甚至連Nginx都會太大,我就想起來了和hugo一樣都是Go語言寫的Caddy,看到網路上介紹,非常輕薄短小,我就準備一台主機來好好折騰了。
其實Caddy設定很簡單,我花很多天的時間是因為我的port被封住,我不知道,所以白白浪費很多天,偷懶的我,要參考一下大德的文章。
參考1:將 nginx 調整為 caddy,世界上的網站都與 ssl 做好朋友
大概按照步驟一步一步就可以設定完成了。不過中間gist程式那裏有些小地方錯誤,可能大家要自己注意一下。
最難的地方就是設定那個Caddyfile,還有發證書的地方。
如果是透過Cloudflare來設定DNS,**請記住設定DNS only,橘色不要選取喲。 **,然後有一個指令很重要,非打不可。1
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
我每次都會出現沒有setcap這個指令,請安裝libcap2-bin,才會出現
這裡打對了,等一下設定檔,只需要打一行就好,他會自動幫你申請證書。
重點來了,Caddyfile要怎麼設定呢?舉一個例子,假設你的網址是oracle.example.com
oracle.example.com {
tls example@gmail.com #這裡打你自己的Email
root /var/www #這裡打你的檔案路徑
index index.html
gzip # 網頁壓縮
header /assets { # 加入檔頭,指定 assets 路徑下
Cache-Control "max-age=604800" # 控制瀏覽器快取,壽命一週
}
}
這樣就打完收工了!我希望Caddy能夠繼續輕薄短小,不要再肥大囉!
附註:會碰到port 80 被占用的話,就使用
sudo netstat -lnp | grep 80
看哪個程式PID佔用port 80,通常caddy自己也會佔用,砍掉就正常了。
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl enable caddy.service
sudo systemctl start caddy.service
sudo systemctl status caddy.service
參考文章 (Debain)
參考文章 內地的文章,挺詳細
-
如果說Cloudflare的DNS地方沒有打勾。問題就會變得很簡單。只是雖然這樣不知道為何要用CF的DNS了。 ↩︎