輕鬆部屬Nginx反向代理-Nginx Proxy Manager

Nginx Proxy Manager 是一個基於 Nginx+docker 的開源反向代理伺服器管理工具,適合希望簡單且直觀地配置反向代理的使用者。

以往Nginx如果要配置Proxy只能編輯那個又臭又長的nginx.conf,但是Nginx Proxy Manager不一樣,它具有圖形化的使用界面,可以輕鬆管理多個站點,設定 SSL 證書。Nginx Proxy Manager 尤其適合初學者或小型網站管理者,能夠快速完成設置並且不需要手動修改複雜的配置文件。

Nginx Proxy Manager 的主要功能

  1. 反向代理:將請求轉發至內部伺服器,隱藏內部伺服器的真實 IP 地址。
  2. SSL 加密:支援 Let’s Encrypt,自動為站點申請免費的 SSL 證書。
  3. 自動化 HTTPS:可以自動將 HTTP 流量重定向至 HTTPS,確保資料安全。
  4. 存取控制:透過簡單的 UI 管理存取權限,支持基本的身份驗證。
  5. 監控功能:提供基本的日誌與狀態監控,讓使用者更輕鬆掌握伺服器狀態。

本文以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) 來進入管理介面。預設的管理員帳號為:

首次登錄後,系統會提示你更改密碼。

配置反向代理

在 Nginx Proxy Manager 的介面上,你可以通過以下步驟來添加一個反向代理:

  1. 登入後,點擊 Proxy Hosts > Add Proxy Host
  2. Domain Names 欄位中輸入你的網域名稱(例如 example.com)。
  3. Forward Hostname / IP 中輸入你的後端伺服器 IP 或主機名稱。
  4. Forward Port 中輸入後端伺服器的端口(例如 3000)。
  5. 如果需要,啟用 Cache Assets 來加速靜態資源的加載。
  6. 點擊 Save 儲存配置。

設定 SSL 證書

Nginx Proxy Manager 支援自動化申請 Let’s Encrypt 的免費 SSL 證書。設定方法如下:

  1. 首先將上方頁籤切換到 SSL Certificate>Add SSL Certificate> Let’s Encrypt
  2. Domain Names 輸入域名
  3. Email Address for Let’s Encrypt 輸入你的信箱
  4. I Agree to the Let’s Encrypt Terms of Service 選起來,然後點擊 Save

這樣 Nginx Proxy Manager 會自動向 Let’s Encrypt 申請 SSL 證書,之後再回 Proxy Hosts 上將SSL證書套用上去就OK了,證書有效期到期時也會自動更新。

如果是你自己有SSL證書(如:cloudflare原點憑證),則方法有點不一樣

  1. 首先將上方頁籤切換到 SSL Certificate>Add SSL Certificate> Custom
  2. 輸入一個辨識用的名子
  3. 選擇機構頒發的證書及密鑰,然後點擊 Save
  4. 中繼憑證為可選

這樣自己的SSL憑證就匯入到 Nginx Proxy Manager 裡面了,之後再回 Proxy Hosts 上將SSL證書套用上去就OK了。

使用存取控制

Nginx Proxy Manager可以通過身份驗證來限制訪問權限:

  1. 點擊 Access List,然後點擊 Add Access List
  2. 設定名稱並選擇 Pass Auth to Host。
  3. 切換到Authorization,輸入允許訪問的用戶名和密碼。
  4. 在Access選項中可以配置IP白名單。

這樣在配置 Proxy Host 時,就可以將此存取列表應用到該站點。

監控和日誌查看

Dashboard 中,你可以查看每個代理主機的基本狀態和訪問日誌。這有助於識別訪問模式和潛在問題,並確保反向代理運行正常。

另外還有稽核記錄可查看設定修改記錄


以上基本安裝及設定就介紹到這邊,官方文檔有更進階的用法,有興趣可以自行研究。

Nginx Proxy Manager 提供了一個易於使用的反向代理解決方案,適合於初學者和中小型網站。它簡化了 SSL 加密的設置,讓網頁運行更加安全,並且允許使用者管理訪問權限和監控伺服器狀況。如果你正在尋找一個功能強大且簡單易用的代理管理工具,Nginx Proxy Manager 是不錯的選擇。

分享這篇文章:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *