輕鬆部屬Nginx反向代理-Nginx Proxy Manager
Nginx Proxy Manager 是一個基於 Nginx+docker 的開源反向代理伺服器管理工具,適合希望簡單且直觀地配置反向代理的使用者。
以往Nginx如果要配置Proxy只能編輯那個又臭又長的nginx.conf,但是Nginx Proxy Manager不一樣,它具有圖形化的使用界面,可以輕鬆管理多個站點,設定 SSL 證書。Nginx Proxy Manager 尤其適合初學者或小型網站管理者,能夠快速完成設置並且不需要手動修改複雜的配置文件。
Nginx Proxy Manager 的主要功能
- 反向代理:將請求轉發至內部伺服器,隱藏內部伺服器的真實 IP 地址。
- SSL 加密:支援 Let’s Encrypt,自動為站點申請免費的 SSL 證書。
- 自動化 HTTPS:可以自動將 HTTP 流量重定向至 HTTPS,確保資料安全。
- 存取控制:透過簡單的 UI 管理存取權限,支持基本的身份驗證。
- 監控功能:提供基本的日誌與狀態監控,讓使用者更輕鬆掌握伺服器狀態。
本文以Ubuntu server 24.04為範例
Nginx Proxy Managerg是建立在docker上,所以必須先安裝好docker以及docker-Compose
建立 Docker Compose 文件
建立nginx-proxy-manager資料夾並切換到該資料夾
mkdir nginx-proxy-manager
cd nginx-proxy-manager
在這個目錄中創建 docker-compose.yml
文件並加入以下內容:
nano docker-compose.yml
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
80/443 Port為 Proxy 監聽介面,管理介面在 81 Port,設定資料會保存在本機 ./data 目錄,設定資料使用 SQLite 資料庫保存,Let’s Encrypt 憑證則存在 ./letsencrypt 資料夾。
另外如果你的伺服器是放在防火牆或路由器後方,記得將80與443的Port指向到你的Nginx Proxy Manager主機。
啟動 Docker Compose
在同一個目錄下運行以下指令來建立docker容器:
sudo docker-compose up -d
訪問 Nginx Proxy Manager 介面
啟動服務後,輸入伺服器的 IP 和端口 81 (例如 http://your-server-ip:81
) 來進入管理介面。預設的管理員帳號為:
- 預設帳號:
[email protected]
- 預設密碼:
changeme
首次登錄後,系統會提示你更改密碼。
配置反向代理
在 Nginx Proxy Manager 的介面上,你可以通過以下步驟來添加一個反向代理:
- 登入後,點擊 Proxy Hosts > Add Proxy Host。
- 在 Domain Names 欄位中輸入你的網域名稱(例如
example.com
)。 - 在 Forward Hostname / IP 中輸入你的後端伺服器 IP 或主機名稱。
- 在 Forward Port 中輸入後端伺服器的端口(例如 3000)。
- 如果需要,啟用 Cache Assets 來加速靜態資源的加載。
- 點擊 Save 儲存配置。
設定 SSL 證書
Nginx Proxy Manager 支援自動化申請 Let’s Encrypt 的免費 SSL 證書。設定方法如下:
- 首先將上方頁籤切換到 SSL Certificate>Add SSL Certificate> Let’s Encrypt
- 在 Domain Names 輸入域名
- 在 Email Address for Let’s Encrypt 輸入你的信箱
- 將 I Agree to the Let’s Encrypt Terms of Service 選起來,然後點擊 Save。
這樣 Nginx Proxy Manager 會自動向 Let’s Encrypt 申請 SSL 證書,之後再回 Proxy Hosts 上將SSL證書套用上去就OK了,證書有效期到期時也會自動更新。
如果是你自己有SSL證書(如:cloudflare原點憑證),則方法有點不一樣
- 首先將上方頁籤切換到 SSL Certificate>Add SSL Certificate> Custom
- 輸入一個辨識用的名子
- 選擇機構頒發的證書及密鑰,然後點擊 Save
- 中繼憑證為可選
這樣自己的SSL憑證就匯入到 Nginx Proxy Manager 裡面了,之後再回 Proxy Hosts 上將SSL證書套用上去就OK了。
使用存取控制
Nginx Proxy Manager可以通過身份驗證來限制訪問權限:
- 點擊 Access List,然後點擊 Add Access List。
- 設定名稱並選擇 Pass Auth to Host。
- 切換到Authorization,輸入允許訪問的用戶名和密碼。
- 在Access選項中可以配置IP白名單。
這樣在配置 Proxy Host 時,就可以將此存取列表應用到該站點。
監控和日誌查看
在 Dashboard 中,你可以查看每個代理主機的基本狀態和訪問日誌。這有助於識別訪問模式和潛在問題,並確保反向代理運行正常。
另外還有稽核記錄可查看設定修改記錄
以上基本安裝及設定就介紹到這邊,官方文檔有更進階的用法,有興趣可以自行研究。
Nginx Proxy Manager 提供了一個易於使用的反向代理解決方案,適合於初學者和中小型網站。它簡化了 SSL 加密的設置,讓網頁運行更加安全,並且允許使用者管理訪問權限和監控伺服器狀況。如果你正在尋找一個功能強大且簡單易用的代理管理工具,Nginx Proxy Manager 是不錯的選擇。