通過NGINX配置文件管理代理(Proxies)和虛擬主機(VHosts)在虛擬主機和網絡服務數量增加時會變得繁瑣。如何簡化這個過程呢?通過使用NGINX代理管理器(NPM).
繼續閱讀,學習如何使用NGINX代理管理器網絡控制台創建、管理和保護虛擬主機.
先決條件
本教程將進行實踐演示,如果您想跟隨進行,請確保您擁有以下東西:
- A Linux machine to host NGINX Proxy Manager and the proxied webserver- This tutorial uses Fedora 35.
- Docker用於運行容器-本教程使用Docker v20.10.12。如果您尚未安裝任何替代方案,請按照本教程安裝Docker。
- Docker Compose用於自動設置代理管理器及其所需的其他內容。本教程使用版本1.29.2。請安裝Docker Compose以繼續閱讀本文。
- 域名作為虛擬主機端點。本教程使用私有域名,testweb.com。確保域名指向 Linux 主機。您也可以使用公開註冊的域名。
- 為了保護虛擬主機,您必須擁有一個SSL憑證和憑證密鑰。如果還沒有,請先創建一個憑證及其相關的密鑰文件。
設置 NGINX Proxy Manager
NGINX Proxy Manager 不是您在操作系統上安裝的軟件包。相反,NPM 是一個您在 Docker 中部署的應用程式,這就是為什麼 Docker 和 Docker Compose 是主要要求的原因。
請按以下步驟開始設置您的 NGINX Proxy Manager。
1. 透過 SSH 或桌面環境(如果有)登錄到您的 Linux 伺服器。
2. 使用您喜歡的文本編輯器創建並打開一個名為 docker-compose.yml 的 YAML 文件,這裡使用 vi。
3. 將以下代碼複製並粘貼到編輯器中。此代碼包含下載和設置最新 nginx-proxy-manager 映像的指令。保存並關閉文件以返回命令行。
4. 運行 docker-compose 根據指定的指令將容器後台啟動 (-d)。

5. 執行以下命令確保容器正在運行。
如果一切正常,您應該看到類似下面截圖的代理管理器容器的運行進程。

訪問管理面板
現在 NGINX Proxy Manager 應該正在運行。您現在可以訪問 NPM 管理面板進行初始管理員用戶設置。
1. 開啟瀏覽器視窗並導航至 http://<host_ip>:admin-ui-port>。為了方便起見,本教程使用隱含的本地主機代替 IP 地址,即 http://localhost:81,來啟動管理面板。
2. 使用初始默認憑據登錄,電子郵件地址為 [email protected],密碼為 changeme。

3. 根據您的需求修改默認用戶帳戶。本教程保留全名和暱稱,僅將電子郵件更改為 [email protected]。點擊保存以保存用戶詳細信息。

4. 在下面的更改密碼中輸入新的用戶密碼。輸入八個或更多字符的密碼,然後點擊保存。

您應該可以在下面看到您對用戶帳戶所做的更改。

部署 Web 服務器
現在您已完成初始設置,下一步是為您的虛擬主機啟動 Web 服務器。按照本節中的步驟快速啟動使用 Docker Compose 的 Apache Web 服務容器。
在您先前在文本編輯器中創建的 docker-compose.yml 文件中打開它。將以下代碼附加到 docker-compose.yml 文件中
使用相同文件的優勢是,您可以通過將基於 httpd 的容器添加到名為 app2 的現有容器網絡中來修改現有容器網絡,而不是在獨立網絡中。
文件內容應該如下截圖所示。保存文件並退出編輯器。

運行docker-compose
在後台啟動容器(-d
)。
您應該收到類似下面截圖的反饋,確認第二個容器已創建。

創建新的虛擬主機
您現在擁有運行中的 Web 服務。本部分旨在通過 NGINX Proxy Manager 的發布端口實現對 Web 服務器的訪問。
1. 登錄到NGINX Proxy Manager的管理面板。
2. 點擊主機 —> 代理主機。

3. 點擊添加代理主機以啟動為 Web 服務器創建虛擬主機。

4. 使用以下詳細信息填寫新代理主機表單來設置虛擬主機。
- 域名:您的 Web 服務器將可訪問的域名。此示例使用testweb.com域。
- 方案:訪問 Web 服務器時要使用的協議。現在保留默認值為
http
。
- 前向主機名稱 / IP: Web 伺服器的主機名稱或 IP 位址。由於本教學使用 Docker Compose 設定容器,僅需使用
app2
即可。輸入您在 docker-compose.yml 中提供的名稱。
- 前向埠: Web 伺服器聆聽請求的埠。在這種情況下,您將使用埠
80
,這是 Apache httpd 容器的預設公開埠。
- 封鎖常見漏洞: 使用 NPM 設置的代理可以阻擋常見漏洞。啟用此選項。
- 存取清單: 預先指定的清單,用於控制代理後面的 Web 伺服器的存取權。對於本教學,將選擇公開存取,以確保您可以通過代理訪問 Web 伺服器。
螢幕上的表單應與下方的截圖相匹配。填寫表單後,按 Save。

現在,您的列表上有一個代理主機。

5. 最後,在新的瀏覽器分頁或視窗中導航至虛擬主機的 URL。對於本教學,URL 為 http://testweb.com。如果虛擬主機正常運作,您應該看到默認首頁。

供應 SSL 憑證
您已部署 Web 伺服器並確認它正在運行。然而,此時網站尚未擁有 SSL 憑證。雖然在運行內部私有網站時可能不需要 SSL 憑證,但在託管公共網站時則不能這樣。
為了確保您的網站連線是加密的,接下來您將在虛擬主機上安裝 SSL 憑證。別擔心,您將從 NGINX Proxy Manager 進行操作。但是,您應該已經擁有一個現有的 PEM 格式 SSL 憑證和憑證密鑰。
1. 從 NGINX Proxy Manager 管理面板中點擊 SSL 憑證選項卡。

2. 在右上角,點擊添加 SSL 憑證 —> 自定義。

作為自定義憑證的替代方案,您可以直接選擇 Let’s Encrypt 來動態申請憑證。但是,這樣做要求您的網站和 DNS 記錄是公開的。否則,憑證獲取將失敗。
3. 請按照以下步驟填寫添加自定義憑證表單
- 名稱: 在管理面板中憑證的人性化名稱。本教程使用名稱 Testweb Cert。

- 憑證密鑰: 此密鑰隨本教程中生成的憑證文件一起提供。
點擊瀏覽,然後導航至密鑰文件。

雙擊密鑰文件。對於本教程,憑證密鑰的名稱為 mytesthttpd.key。

- 憑證: 憑證文件本身,可以是 .crt 或 .pem 格式。
點擊瀏覽,然後在文件瀏覽器中導航至您的憑證。

雙擊憑證文件以打開它。對於本教程,憑證文件名稱為 mytesthttpd.pem。

4. 填寫完所有三個欄位後,您的表單應該如下螢幕截圖所示。按“儲存”以提交自訂憑證。
此教程目前不使用中介憑證。現在暫時忽略該欄位。

5. 現在,點擊主機 —> 代理主機。

6. 點擊 三明治菜單圖示,然後點擊“編輯”。請注意,此時 SSL 欄位顯示為僅 HTTP

7. 在“編輯代理主機”視窗中選擇 SSL 選項卡,如下所示。從 SSL 憑證下拉選單中選擇您預設的憑證。本教程中為 Testweb Cert 如下截圖所示。

8. 從 SSL 憑證下拉選單中選擇您之前添加的憑證。如下所示,要選擇的憑證名稱是 Testweb Cert。

9. 啟用所有可用的增強 SSL 選項,如下截圖所示,然後點擊“儲存”
Force SSL 選項將強制或升級所有連接到 HTTPS,即使客戶端最初嘗試訪問僅支持 HTTP 的 URL。

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.
您會注意到 SSL 欄位的值已從“僅 HTTP”更改為“自訂”

10. 最後,在瀏覽器中打開一個新的標籤,再次訪問您的虛擬主機域。對於本教程,即 http://testweb.com。連接應自動升級為 HTTPS。

恭喜!您已完成使用 NGINX Proxy Manager 部署或保護虛擬主機。
添加 NGINX Proxy Manager 用戶
請提供您的原始文本。
Translated text:
如果您與團隊合作或期望其他人管理NPM中的虛擬主機,您將需要提供使用者訪問權限。在本部分中,您將擴展NPM管理,特別是在團隊環境中,通過創建使用者並分配角色和權限。
1. 在管理員面板首頁上點擊用戶。

2. 在用戶卡片的右上角點擊添加用戶。

3. 在相應的字段中輸入用戶的全名(測試用戶),暱稱(testuser)和電子郵件([email protected]),然後點擊保存。
您正在創建的這個用戶將不是完整的管理員,所以請不要啟用管理員角色。相反,您將分配自定義權限。點擊保存以添加新用戶。

4. 設置您要授予該用戶的權限。在本教程中,新用戶將具有以下權限設置。
- 只能查看由該用戶創建的項目。
- 可以創建、編輯和刪除代理主機。
- 可以創建、編輯和刪除重定向主機。
- 不能查看404主機。
- 不能查看流。
- 可以查看訪問列表。
- 可以創建、編輯和刪除SSL證書。
權限集應該與下面的屏幕截圖類似。點擊保存以完成添加新用戶的步驟。

5. 現在,點擊新用戶的選項菜單,然後點擊以該用戶身份登錄。此步驟將將當前用戶上下文切換為測試用戶。

6. 從新用戶的角度探索管理員面板。 根據該用戶的權限,您應該看到較少的標籤和資源。

結論
恭喜您完成了這個NGINX代理管理器教程。 您學會了通過GUI管理虛擬主機並通過創建用戶啟用協作! 您認為您將來會再次通過編輯手動配置文件來管理NGINX虛擬主機嗎?
進一步測試您的學習的一個想法。 為什麼不閱讀一下如何提供NGINX子域或多個域名。 但是,不要按照手動配置,而是應用您所學的知識,使用NGNIX代理管理器部署和配置虛擬主機。