为什么需要 Nginx Proxy Manager?
如果你有多项服务部署在同一台服务器上(比如 Portainer、Nextcloud、Gitea 等),每个服务都占用不同端口,不仅记起来极其麻烦,直接将这么多端口暴露在公网上也非常不安全。

Nginx Proxy Manager(简称 NPM)就是解决这个痛点的神器
探索
通过 NPM,你可以轻松实现:
- 告别端口号: 用优雅的域名替代难记的端口号(例如用
portainer.yourdomain.com代替your-ip:9000)。 - 自动小绿锁: 全自动申请和续期 Let’s Encrypt SSL 证书,实现全站 HTTPS 安全访问。
- 小白福音: 提供极简的 Web 可视化配置界面,彻底告别手写复杂的 Nginx 配置文件。
- 协议丰富: 完美支持 WebSocket 等多种协议。
一、 环境准备
确保你的服务器已安装 Docker 和 Docker Compose。如果你的 VPS 是一台纯净的新机器,请先运行以下命令进行安装:
1. 安装 Docker
curl -fsSL https://get.docker.com | sh
2. 安装 Docker Compose
apt update && apt install docker-compose -y
(💡 提示:目前官方更推荐使用 Docker V2 插件 docker compose,但兼容老版本的 docker-compose 依然可以完美运行本教程。)
二、 创建 docker-compose.yml
为了方便后期管理和数据备份,我们为 NPM 创建一个专属目录,并编写配置文件:
mkdir -p ~/npm && cd ~/npm
nano docker-compose.yml
将以下配置内容粘贴到文件中(按 Ctrl+O 保存,Ctrl+X 退出):
YAML
version: '3'
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
ports:
- "80:80" # HTTP 默认端口
- "443:443" # HTTPS 默认端口
- "81:81" # NPM Web 管理界面端口
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
三、 启动容器
在 docker-compose.yml 所在的目录下,执行以下命令一键启动容器:
docker-compose up -d
四、 访问 Web 管理界面
启动成功后,打开你的浏览器,访问:http://your-server-ip:81
- 默认登录账号:
admin@example.com - 默认登录密码:
changeme
⚠️ 强烈建议: 首次登录后,系统会强制要求修改个人信息和密码,请务必设置一个强密码以保证安全!
五、 配置反向代理与 HTTPS
接下来就是见证奇迹的时刻。假设你想把本地的 8080 端口服务,绑定到 app.yourdomain.com 这个域名上:
- 在 NPM 面板顶部菜单栏点击 Proxy Hosts → Add Proxy Host。
- Details(基础详情)配置:
- Domain Names: 填写你的域名(如
app.yourdomain.com,请确保域名已解析到该服务器 IP)。 - Forward Hostname / IP: 填写本地服务地址(如
127.0.0.1或 Docker 内部 IP)。 - Forward Port: 填写服务端口(如
8080)。
- Domain Names: 填写你的域名(如
- SSL(证书)配置:
- 切换到 SSL 选项卡。
- 下拉菜单选择 Request a new SSL Certificate。
- 勾选 Force SSL(强制 HTTPS)。
- 勾选同意 Let’s Encrypt 服务条款。
- 点击 Save 保存。
稍等片刻,NPM 就会自动为你申请好证书并配置完成。现在,你就可以直接通过 https://app.yourdomain.com 优雅地访问你的服务了!
六、 常见问题排查 (FAQ)
Q: 启动失败,提示 80/443 端口被占用怎么办? A: 这通常是因为你的服务器上已经安装了其他的 Web 服务(如宝塔面板、老版本的 Nginx 或 Apache)。你需要先停止并禁用它们:
systemctl stop apache2 nginx
systemctl disable apache2 nginx
Q: SSL 证书一直申请失败报错? A: 请重点检查两件事:
- 你的域名是否已经准确无误地解析到了这台服务器的公网 IP。
- 服务器所在厂商的安全组(防火墙)是否已经开放了
80和443端口,必须保证这两个端口能被外网访问。
七、 总结
Nginx Proxy Manager 绝对是管理反向代理的终极神器,特别适合那些喜欢在家庭 NAS、软路由或 VPS 上部署各种 Docker 容器(All in One)的玩家。
可视化界面 + 自动续期 SSL,把原本极具门槛的 Nginx 配置降级成了“点击就送”,极大提升了我们的折腾效率,强烈推荐给各位站长部署!

心海漪澜

评论前必须登录!
注册