Nginx Proxy Manager 是一套以 Nginx 為核心的反向代理管理工具。它最大的特色是提供 Web 圖形化管理介面,讓你不必自己撰寫大量 nginx.conf,就能設定網域轉發、HTTPS、SSL 憑證與存取控制。

官方主要以 Docker 映像檔方式提供,今天我們就來教大家如何在 QNAP Container Station 運行 Nginx Proxy Manager。
https://hub.docker.com/r/jc21/nginx-proxy-manager
services:
app:
image: 'docker.io/jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
使用容器運行
我們先到儲存空間,建立容器稍後使用的 Volume。

這兩個 Volume 都是用來讓 Nginx Proxy Manager 的資料在容器重建、更新後仍然保留下來。
- npm_data:Nginx Proxy Manager 本身的應用程式資料,例如 SQLite 資料庫、Proxy Host 與 Redirection Host 等相關設定。
- npm_letsencrypt:專門存放 SSL/TLS 憑證相關資料,主要就是 Let’s Encrypt 憑證。

接著建立容器,輸入映像檔名稱,下一步。
- 映像檔:jc21/nginx-proxy-manager:latest

設定容器,點選進階設定。

點選網路,網路模式選擇自訂 Bridge,勾選使用靜態 IP 位址,套用。

點選儲存空間,新增儲存空間對應如下。
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
點選套用,下一步。

確認摘要無誤後,點選完成。

容器順利運行

訪問剛剛設定的 IP 位置,正常畫面如下。

訪問 Nginx Proxy Manager 的管理介面,正常畫面如下。

建立管理人員帳號與密碼,這樣就完成了。

使用應用程式運行
到應用程式,點選建立。

使用下列 YAML 來建立 Nginx Proxy Manager
version: '3'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
networks:
qnet:
ipv4_address: 192.168.0.100
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
volumes:
npm_data:
npm_letsencrypt:
networks:
qnet:
external: true
name: qnet-static-eth0-0fa2ce
應用程式與容器順利運行

應用程式會自動新增儲存空間如下
- app-1_npm_data
- app-1_npm_letsencrypt

如何讓應用程式建立的容器透過 Qnet 取得區域網路獨立 IP,可以參考之前寫過的文章。
今天的分享就到這邊,感謝收看。


