跳到主要內容

Caddy Server - 比 Apache、Nginx 方便的網頁伺服器 (Web Server)、反向代理 (Reverse Proxy),自動產生 SSL 憑證,網站直接變 HTTPS



如果要架網頁伺服器 (Web Server) 大家第一個想到的可能是用 Apache 或近年來竄升的 Nginx,我並不是要說這兩個不好,實際上它們有更多細項可以設定,功能也非常強大,但要講便利性是永遠比不上 Caddy 的。Google 搜尋引擎的演算法會優先收錄 HTTPS 網站,換句話說現在的網站最好都要加上 SSL 憑證,而用 Caddy 來架站的話會內建這個功能,不需要任何的設定,它會自動幫你用 CertbotLet's Encrypt 發放憑證,等於只要網站一上線就自動會開啟 HTTPS。而且在其他方面的功能也都能滿足大多數使用者,如果還在考慮要用什麼架站,不妨試試看 Caddy,它會方便的超乎想像。

Caddy
官方網站 : https://caddyserver.com
GitHub : https://github.com/mholt/caddy


curl https://getcaddy.com | bash -s personal
在官網下載頁可以自行選擇系統平台插件 (非必要) 和憑證 (個人憑證是免費的),之後建議使用下方的 Bash 直接下載安裝。



不像 Apache 和 Nginx,Caddy 並沒有所謂的全預設定檔,你可以隨便在你想要的路徑建立一個「Caddyfile」然後就用這個檔案的設定運行 Caddy Server。


yourdomain.com {      # 填寫網域才會自動產生 SSL 憑證,localhost 就只會有 HTTP
root /home/www         # 網站根目錄
gzip                             # 網頁壓縮
    header /assets {       # 加入檔頭,指定 assets 路徑下
      Cache-Control "max-age=604800"   # 控制瀏覽器快取,壽命一週
    }
}
這是一個最標準的網頁伺服器設定範本,在官網可以看到其實根本只需要一行就能讓網頁成功上線,但還是建議加入 gzip 網頁壓縮、以及瀏覽器快取的部分。


proxy /api localhost:9005  # /api 的請求直接跳轉到本機 Port 9005 
建立 Proxy 也很簡單,只要一行就完成了。

proxy / web1.local:80 web2.local:90 web3.local:100
拿來做負載均衡也是可以。



caddy -conf 路徑/Caddyfile
建立完 Caddyfile 後就可以使用 -conf 參數指定檔案的位置然後運行伺服器了。






留言



這個網誌中的熱門文章

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

TLS / SSL 金鑰轉檔,「.crt / .key」如何轉成「.pem」?( OpenSSL 教學)

不管是哪個 Certificate Authority (CA) 發的憑證多半金鑰檔都是給「.crt / .key」格式的檔案,像是「ca_bundle.crt」、「 certificate.crt」和「.private.key」這種檔案, 但是在實際使用 (Nginx、Apache...等伺服器) 卻會需要的是「.pem」檔 ,那要怎麼轉換呢?其實可以直接使用 OpenSSL 這個軟體和幾行指令來達成。 OpenSSL 官方網站 :  https://www.openssl.org 下載頁面 :  https://www.openssl.org/source sudo apt-get install openssl 以 Linux (Ubuntu / Debian ...等) 為例,可以直接使用 apt-get 指令下載安裝 OpenSSL,如果是其他系統可以參考官方網站的說明。 openssl rsa -in private.key -text > private.pem openssl x509 -inform PEM -in certificate.crt > certificate.pem openssl x509 -inform PEM -in ca_bundle.crt > ca_bundle.pem 以前述所提到的「ca_bundle.crt」、「 certificate.crt」和「.private.key」三個檔案為例,就可以用上方的指令完成轉檔,其實同副檔名的轉檔指令都相同,所以兩個「.crt」的指令其實是重複的,也要記得套換成自己的檔案名稱。 如果需要申請免費的 SSL 憑證也可以參考之前介紹過的 SSL For Free ,它是使用「Let's Encrypt」核發的憑證,以及如果覺得申請憑證和定期更新太麻煩,也可以考慮自動化的 Caddy Server 能自動幫網站升級 HTTPS。

Ubuntu 打不出中文怎麼辦?安裝 gcin 注音輸入法輕鬆打出繁體中文 (Chinese input / Type Chinese)

如果第一次使用 Ubuntu 一定會有這個疑問,就是鍵盤怎麼按就是打不出中文字,其實不是你的 Ubuntu 壞了而是本來就需要安裝專用的中文輸入法才能用注音打中文,解法也很簡單,只要到 Ubuntu 軟體內找尋 gcin 這個中文輸入法就可以了。 在左上角 「尋找你的電腦」找到 Ubuntu 軟體 ,這就像是 Windows 軟體市集一樣,在這裡安裝小工具都不需要任何的指令,只要點一點就可以簡單的完成。 查詢 「gcin」 這個中文輸入法。 安裝時會需要管理員身份,只要輸入 Ubuntu 的密碼就可以了。 接著打開 設定 > 語言支援 。 將鍵盤輸入法系統改為「gcin」後 重新登入 就可以打中文啦。