nginx proxy manager(npm)是基于nginx的完整反向代理服务,内置nginx实例并自动管理配置热更新,无需额外部署nginx;手动另起nginx会导致端口冲突、配置混乱和证书不同步。

直接用 Nginx Proxy Manager(NPM)替代手动部署的 Nginx,而不是“配合”它。NPM 本身就是一个基于 Nginx 的完整服务,它把 Nginx 的核心能力封装进可视化界面,你不需要单独再装一套 Nginx。
为什么不用额外部署 Nginx
NPM 容器内部已经内置了 Nginx 实例,并由其管理进程自动加载和热更新配置。所有代理规则、SSL 证书、重定向、访问控制等操作,都通过 Web 界面生成并写入容器内的 Nginx 配置文件,再触发 reload。手动另起一个 Nginx 不仅冗余,还容易端口冲突、配置混乱、证书不同步。
正确部署方式:只跑 NPM 一个容器
使用官方或中文镜像启动 NPM,它就承担了全部反向代理职责:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 映射三个关键端口:80(HTTP)、443(HTTPS)、81(管理界面)
- 挂载两个持久化卷:./data(存配置和数据库) 和 ./letsencrypt(存证书)
- 首次访问 http://服务器IP:81,用默认账号 admin@example.com / changeme 登录,系统强制修改密码
上游服务怎么接入
NPM 不要求上游服务必须是 Docker 容器,但推荐统一网络管理:
- 如果后端服务(如 Portainer、Home Assistant、Bitwarden)也运行在 Docker 中,建议和 NPM 共享自定义网络(如 scoobydoo),这样 NPM 可直接用容器名当主机名访问,无需暴露端口到宿主机
- 如果后端是宿主机上的程序(如本地 Python Web 服务),填写 127.0.0.1:端口 即可,但需确保宿主机防火墙放行该端口
- 添加代理主机时,在 “Forward Hostname/IP” 填上游地址,“Forward Port” 填对应端口,勾选 “SSL” 后点“Save”,NPM 自动申请或绑定证书
需要定制 Nginx 行为怎么办
NPM 提供了“高级选项”区域,支持直接插入原生 Nginx 配置片段:
- 在创建或编辑代理主机时,展开 Advanced 标签页
- 在 “Custom Nginx Configuration” 输入框中粘贴 location 块、proxy_set_header、limit_rate 等指令
- 保存后,NPM 会将其合并进自动生成的 server 配置中,不破坏整体结构










