使用叢集節點管理多主機 Nginx
建議方式
當您希望透過單一 Nginx UI 控制面板管理多台主機上的 nginx 時,請使用叢集節點功能,而不是宿主機 SSH 模式。
如何選擇
| 需求 | host_via_ssh | 叢集節點 |
|---|---|---|
| 主機 A 上的容器管理主機 A 上的 nginx | ✓ | ✓(過於複雜) |
| 主機 A 上的容器管理主機 B 上的 nginx | ✗ | ✓ |
| 透過單一 Web 介面檢視多台主機的設定/日誌 | 否 | ✓ |
| 對等節點無法連線時各主機保持自主執行 | 否 | ✓ |
建議拓撲
| 層級 | 作用 | 說明 |
|---|---|---|
| 瀏覽器 | 開啟主節點的 Nginx UI | 日常操作只需要進入一個控制台 |
| 主節點 | 註冊對等節點並提供節點切換器 | 也可以管理本機 nginx |
| 對等節點 | 分別執行自己的 Nginx UI 實例 | 每個節點管理同一主機上的 nginx |
| 叢集聯邦 | 連接主節點與對等節點 | 請求會在目前選取的節點上執行 |
主節點不會透過 SSH 連線到其他主機,而是透過叢集節點連線轉發操作。如果某個節點以 Docker 方式執行 Nginx UI,並管理同一宿主機上的 nginx,請只在該節點上設定 在 Docker 中管理宿主機 Nginx。
設定步驟
1. 在每台主機上安裝 nginx-ui
建議每個節點盡量使用相同的部署方式。原生 Linux 安裝可以執行:
bash
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install也可以使用 Docker 部署。可參考 安裝指令碼 和 快速開始 了解可用的安裝方式。
2. 在每個對等節點上產生 Node Secret
登入對等節點的 Web 介面,進入設定 → 節點,複製 Node Secret。
3. 在主節點上註冊對等節點
可以透過 app.ini 或 Docker 環境變數設定對等節點:
ini
[cluster]
Node = http://10.0.0.2:9000?name=host-b&node_secret=<host-b-secret>&enabled=true
Node = http://10.0.0.3:9000?name=host-c&node_secret=<host-c-secret>&enabled=trueyaml
services:
nginx-ui:
environment:
- NGINX_UI_CLUSTER_NODE=http://10.0.0.2:9000?name=host-b&node_secret=...&enabled=true,http://10.0.0.3:9000?name=host-c&node_secret=...&enabled=true4. 在 Web 介面中切換節點
頂列的節點切換器會將後續所有操作路由到所選節點。每個操作都在該節點本地執行。主機之間不需要 SSH 通訊。
為對等節點簽發 DNS-01 憑證
DNS-01 外掛只需要安裝在主節點上。在節點切換器中選取某個對等節點後,網站編輯器的憑證對話框會提供 DNS 驗證:在主節點,這也是預設選項。此時主節點會:
- 使用自己的 DNS 憑證驗證網域,憑證不會離開主節點;
- 將憑證傳送到對等節點,由那裡的網站載入;
- 負責續期,並將每次續期後的憑證傳送到對等節點。
在主節點的憑證清單中,這些憑證帶有 用於 <節點> 標籤。刪除後主節點會停止續期;對等節點上的檔案預設保留,也可以選擇一併刪除,但如果對等節點的設定仍在載入這些檔案,則會保留。
選擇 在本節點 時,使用對等節點自己的外掛與 DNS 憑證進行驗證。直接登入對等節點時只有這一種方式,缺少外掛時對話框會提示安裝。對等節點需要執行能夠接收此類憑證的版本。
叢集與 host_via_ssh 組合使用
您可以讓每個叢集對等節點在內部執行 host_via_ssh。在這種佈局中,容器只管理本機 nginx,跨主機協調由叢集聯邦處理。
另請參閱: