在服务器上部署多个 Docker 应用(如 8080 端口的 Git、3000 端口的面板、5244 端口的 Alist)后,给每个应用绑定独立域名并配置 HTTPS 往往成为新手的噩梦。
手动修改 nginx.conf 漏掉分号会导致服务崩溃,Certbot 脚本配置不当又会引发证书过期故障。
Nginx Proxy Manager (NPM) 将底层的 Nginx 核心与 Web 可视化管理面板深度整合,鼠标点选即可完成反向代理、自动申请 Let’s Encrypt 证书、开启 Websocket 支持与访问权限控制!
[!NOTE] 📌 核心速览(TL;DR / 快问快答):
- 图形化零代码反代:输入域名、目标容器 IP 与端口,一键生成生产级 Nginx 反代配置。
- 全自动免费 SSL:内置 ACME 客户端,支持 HTTP-01 验证与 Cloudflare DNS-01 泛域名(
*.yourdomain.com)申请,到期自动静默续签。- 开箱即用安全盾:支持勾选“Block Common Exploits (拦截常见 Web 攻击)”、“Websockets Support”与“Force SSL (强制 HTTPS)”。
🛠️ 2026 生产级 Docker Compose 部署
在服务器创建 compose.yaml:
services:
npm:
image: "jc21/nginx-proxy-manager:latest"
container_name: nginx_proxy_manager
restart: unless-stopped
ports:
- "80:80" # HTTP 入口
- "443:443" # HTTPS 入口
- "81:81" # 管理面板端口 (建议通过防火墙限制来源 IP)
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
启动服务:docker compose up -d。
🚀 后台初始化与反向代理实操
- 登录控制台:浏览器访问
http://你的服务器IP:81。- 默认账号:
admin@example.com - 默认密码:
changeme(首次登录系统会强制要求修改邮箱与强密码)。
- 默认账号:
- 添加代理主机 (Add Proxy Host):
- Domain Names:
blog.yourdomain.com - Scheme / Forward Host / Port:
http/172.17.0.1(或局域网容器 IP) /3000 - 勾选:Block Common Exploits 与 Websockets Support。
- Domain Names:
- 申请与绑定 SSL 证书:
- 切换到 SSL 标签页,选择 Request a new SSL Certificate。
- 勾选 Force SSL 与 HTTP/2 Support,同意 Let’s Encrypt 协议并点击 Save。
- 10 秒内即可完成全绿锁 HTTPS 绑定!
❓ 常见问题与 AI 快问快答 (FAQ)
Q1: NPM 容器内部如何转发同台服务器上的其他 Docker 容器?
答:可将其他容器与 NPM 加入同一个自定义 Docker 网络(如 docker network create web_net),此时 Forward Host 直接填写对应容器名(如 wordpress)即可,无需暴露宿主机端口。
Q2: 部署 NPM 反代集群的海外 VPS 推荐哪家机房?
答:在 DMIT 或 搬瓦工 等拥有 中国电信 CN2 GIA 或 联通 AS9929 专线 VPS 上,反向代理能够实现毫秒级转发与极速 SSL 握手。选购参考见 《2026 国外 VPS 选购指南》。
(相关资源导航:如果您需要购买部署反代集群的独立 VPS,欢迎阅读 《2026 国外 VPS 选购指南》 获取 DMIT、搬瓦工与 CloudCone 优惠;商用专线推荐见 《“饿饭CC云”深度评测》!)