Nginx Proxy Manager + Zerotier: 反向代理和SSL自動化方案
之前寫過一篇用 frp + docker 佈署 reverse proxy 和 SSL 認證的教學,雖然功能完整,但設定細節不少,尤其 frp 內網穿透的環境變數設定頗複雜。
發現用 Vultr VPS + Zerotier + Nginx Proxy Manager,其實可以更簡單地達成同樣目的,這篇就來分享我的新做法。
Vultr VPS 規格與費用
這次選用 Vultr,規格如下:
- 1 核心 CPU
- 1GB RAM
- 25GB SSD
- 自動備份
每月只要約 $6,比之前用 GCP 或 AWS 同規格 VPS 便宜一半,CP 值很高,適合自架小型服務。
架構流程示意圖
flowchart TD
Client[外部用戶端] --> VPS[Vultr VPS: Nginx Proxy Manager]
VPS --> Zerotier[Zerotier 虛擬網路]
Zerotier --> LocalServer[本地伺服器]
LocalServer --> Service[Web或API服務]
- 外部用戶端透過網域請求 VPS
- VPS 上的 Nginx Proxy Manager 負責反向代理
- VPS 與本地伺服器透過 Zerotier 虛擬網路安全連線
- 本地伺服器提供實際服務
實作步驟
1. Vultr VPS 建置與 Docker 安裝
Vultr 開機後,確保系統已安裝 Docker 與 docker-compose。
2. 部署 Nginx Proxy Manager
建立 docker-compose.yml:
yaml
啟動:
bash
|
|
3. 安裝 Zerotier 並串連本地伺服器
VPS 和本地伺服器都安裝 Zerotier:
Zerotier 控制台允許兩台主機互通,取得本地伺服器的 Zerotier IP。
4. Nginx Proxy Manager 設定反向代理
- 在 Proxy Hosts → Add Proxy Host,輸入對外的網域名稱。
- Forward Hostname / IP 填 Zerotier 分配給本地伺服器的虛擬 IP,Forward Port 填服務埠號(例如 80 或 443)。
- 切到 SSL 分頁,勾選 Request a new SSL Certificate,填入管理信箱並接受 Let’s Encrypt 條款;核發成功後,憑證之後會自動續約。
- 確認其他進階選項依需求調整後,點 Save 套用設定。
優勢比較
- 設定流程比 frp 方案簡單,幾乎不用煩惱環境變數
- Zerotier 虛擬網路安全穩定,適合異地串連
- Vultr VPS 價格實惠,備份方便
- Nginx Proxy Manager 介面友善,SSL 自動化
心得
雖然Nginx Proxy Manager只有UI設定反向代理,但是設定上變得超級簡單
每次新增一個服務只需要在自己的網域商DNS設定domain和Nginx Proxy Manager新增proxy host就好了