由 Nginx Proxy Manager 轉用 Traefik,對呢套基礎設施嚟講係一次重大轉折,以下係原因。
點解要轉用
轉移去 Traefik 嘅主要原因係可擴展性。同需要透過 Web UI 手動設定嘅 Nginx Proxy Manager 唔同,Traefik 嘅設定直接寫喺 Docker Compose 檔案入面。即係話,當你轉去新伺服器或者擴展基礎設施嘅時候,唔使手動重建設定——所有嘢已經以代碼形式定義好晒。
標籤嘅妙處
用 Traefik,你只需喺 Docker 服務上加標籤,代理設定就會自動完成。以下係一個服務設定範例:
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.humfurie.loadbalancer.server.port=80"
- "traefik.http.routers.humfurie.rule=Host(`humfurie.org`)"
- "traefik.http.routers.humfurie.entrypoints=websecure"
- "traefik.http.routers.humfurie.tls=true"
- "traefik.http.routers.humfurie.tls.certresolver=letsencrypt"
- "traefik.http.routers.humfurie.middlewares=fallback-errors@file"
- "traefik.http.routers.humfurie-www.rule=Host(`www.humfurie.org`)"
- "traefik.http.routers.humfurie-www.entrypoints=websecure"
- "traefik.http.routers.humfurie-www.tls=true"
- "traefik.http.routers.humfurie-www.tls.certresolver=letsencrypt"
- "traefik.http.routers.humfurie-www.middlewares=fallback-errors@file"
主要優勢
基礎設施即代碼:所有代理設定都同服務一齊做版本控制。
自動發現:Traefik 會自動偵測新服務並設定路由,唔使人手介入。
輕鬆遷移:遷移去新伺服器只需要帶埋你嘅 Docker Compose 檔案就得。
Let's Encrypt 整合:SSL 證書管理內建且自動化。
總結
如果你而家管理緊多個服務,並計劃日後擴展,Traefik 基於標籤嘅設定方式,會比傳統代理管理器更易維護。前期嘅學習成本,換嚟成個基礎設施以代碼形式定義帶嚟嘅長期效益,係值得嘅。