照片

一個藥師的自由自語

無聊的人請進來.

高藥師

1 分鐘

每次我都會玩一些有的沒有的,基本上都問不到人,只能從網路上找一些資料,偏偏網路資料很多錯誤的,尤其是內地的資料,很多都是抄襲的,錯誤的地方還一模一樣,所以希望趕快筆記下來,免得我自己忘記。

前一陣子,整個從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)

參考文章 內地的文章,挺詳細


  1. 如果說Cloudflare的DNS地方沒有打勾。問題就會變得很簡單。只是雖然這樣不知道為何要用CF的DNS了。 ↩︎

comments powered by Disqus

最新文章

查看更多

關於

一個無聊的藥師,寫一些自己的心情