有幸可以跟閱讀我文章的人交流,真的很榮幸,一起討論可以共同成長 這裡要來比較 Caddy2 和 Nginx 在性能上面的差異,做一下簡單的測試 版本 System Ubuntu: 20.04 LTS Server CPU: 2 Core RAM: 2 GB Web Server Caddy: v2.0.0 Nginx: v1.17.10 Web Wordpress: v5.3.4 Stress Tool Siege: v4.0.4 配置 Caddy2 做了基本的設定,而 Nginx 則是不去變動安裝好就存在的設定,單純只加上 fastcgi 以及添加 index.php
讓兩者使其可以讀取 wordpress 的首頁
Caddy2 1 2 3 4 5 6 :80 { root * /var/www/html/wordpress encode gzip php_fastcgi unix//run/php/php7.4-fpm.sock file_server } Nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 user www-data; worker_processes auto; pid /run/nginx.
自己私架的 Gitlab 獨自使用的時候沒什麼差 當要給其他人共同使用的時候,發現這個問題其實挺毛躁的 所以就想說還是把介面克隆網址無法對應連線網址這個問題解決 簡單架構 經由 Caddy 反向代理至內部 Gitlab
網域為 www.example.com,內部 Gitlab IP/Port 為 192.168.0.1:8080
問題狀況 網址和 Gitlab 介面上的是不一致的,但是實際 Repository 是需要透過 https://www.example.com 連線
Gitlab URL: https://www.example.com Gitlab Repository: http://www.example.com:8080
修正方法 Gitlab 使用 Https 步驟1. 產生憑證及密鑰 1 2 3 4 5 6 7 $ openssl genrsa -out gitlab.key 2048 $ openssl req -new -key gitlab.key -out gitlab.csr $ openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt $ openssl dhparam -out dhparam.
為了方便幫自己家中的一先服務做反向代理,剛好手邊有一台 Synology 的 DS718+ 的 NAS 可以使用 原本只知道 Nginx,但是 Caddy 設定更輕鬆簡單,而且會自動申請 Let's Encrypt 憑證 原本想說使用虛擬機進行安裝,沒想到 Synology 也支援 Docker 所以不用特地在安裝一個虛擬機浪費效能 步驟一 安裝 Synology 安裝套件 Docker 請注意 Synology 機型是否支援 Docker 官網
步驟二 下載 Caddy 映像 選擇 abiosoft/caddy 進行下載
步驟三 佈署&設定 Caddy 容器 啟動容器資源限制,由於只有我個人使用,記憶體設定 64MB 足夠使用
勾選容器自動重啟,當 NAS 重新啟動的時候,Caddy 服務也能自動啟動
配置 Caddyfile 並儲存在 Synology 中
1 2 3 4 5 6 7 8 www.example.com { proxy / 0.0.0.0:8000 { websocket transparent } gzip browse } 將 Synology 中的 Caddyfile 掛載至 Caddy 容器中