Skip to content

使用叢集節點管理多主機 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=true
yaml
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=true

4. 在 Web 介面中切換節點 ​

頂列的節點切換器會將後續所有操作路由到所選節點。每個操作都在該節點本地執行。主機之間不需要 SSH 通訊。

為對等節點簽發 DNS-01 憑證 ​

DNS-01 外掛只需要安裝在主節點上。在節點切換器中選取某個對等節點後,網站編輯器的憑證對話框會提供 DNS 驗證:在主節點,這也是預設選項。此時主節點會:

  • 使用自己的 DNS 憑證驗證網域,憑證不會離開主節點;
  • 將憑證傳送到對等節點,由那裡的網站載入;
  • 負責續期,並將每次續期後的憑證傳送到對等節點。

在主節點的憑證清單中,這些憑證帶有 用於 <節點> 標籤。刪除後主節點會停止續期;對等節點上的檔案預設保留,也可以選擇一併刪除,但如果對等節點的設定仍在載入這些檔案,則會保留。

選擇 在本節點 時,使用對等節點自己的外掛與 DNS 憑證進行驗證。直接登入對等節點時只有這一種方式,缺少外掛時對話框會提示安裝。對等節點需要執行能夠接收此類憑證的版本。

叢集與 host_via_ssh 組合使用 ​

您可以讓每個叢集對等節點在內部執行 host_via_ssh。在這種佈局中,容器只管理本機 nginx,跨主機協調由叢集聯邦處理。

另請參閱:

Released under the AGPL-3.0 License. (350eea3f)