前言
在日常服务器运维、网站部署场景中,Nginx 反向代理、SSL 证书配置是高频需求,但传统手动修改 Nginx 配置文件、申请证书、配置 HTTPS 的方式繁琐易错。Nginx Proxy Manager(NPM)是一款开源可视化 Nginx 管理工具,基于 Docker 一键部署,支持图形化配置反向代理、自动申请 / 导入 SSL 证书、域名转发、访问控制等功能,无需编写复杂 Nginx 配置,新手也能快速上手。本文结合 Docker Compose 一键部署,详细讲解反向代理配置、SSL 证书申请与导入全流程,适配 CentOS、银河麒麟 V10 等国产系统,可直接复刻操作。
一、Nginx Proxy Manager 核心介绍
Nginx Proxy Manager 是基于 Nginx 开发的可视化反向代理管理面板,核心优势:
- 图形化操作:网页端配置反向代理,无需修改配置文件;
- 一键 SSL 证书:支持自动申请 Let's Encrypt 免费 SSL 证书,自动续期;
- 证书导入:兼容阿里云、腾讯云等第三方 SSL 证书导入;
- 安全防护:可开启强制 HTTPS、Websocket 支持、漏洞防护、访问白名单;
- Docker 容器化部署:隔离性强、部署快、迁移便捷。
默认登录信息:
- 邮箱:
admin@example.com - 密码:
changeme
首次登录必须修改管理员账号密码,保障面板安全。
二、Docker Compose 一键部署 Nginx Proxy Manager
1. 编写 docker-compose.yml 部署文件
新建部署目录,创建docker-compose.yml文件,直接复制以下配置(镜像为国内华为云镜像,下载速度更快):
version: "3" services: app: image: 'swr.cn-north-1.myhuaweicloud.com/iivey/nginx-proxy-manager:v1.0' restart: unless-stopped ports: - '80:80' # HTTP端口 - '443:443' # HTTPS端口 - '81:81' # 管理面板端口 environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" volumes: - ./data:/data # 持久化面板配置 - ./letsencrypt:/etc/letsencrypt # 持久化SSL证书 depends_on: - db db: image: 'swr.cn-north-1.myhuaweicloud.com/iivey/mariadb-aria:v1.0' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql # 持久化数据库2. 启动服务
在配置文件目录执行以下命令,一键启动 NPM 服务:
# 后台启动容器 docker-compose up -d # 查看运行状态 docker-compose ps服务启动后,浏览器访问http://服务器IP:81,即可进入 Nginx Proxy Manager 登录页面。
三、Nginx Proxy Manager 反向代理配置实战
3.1 登录面板并修改默认账号
- 访问
http://服务器IP:81,输入默认账号密码:- 邮箱:
admin@example.com - 密码:
changeme
- 邮箱:
- 首次登录强制修改管理员邮箱、用户名、密码,保存后重新登录。
3.2 新建反向代理主机
- 进入面板首页,点击Proxy Hosts(代理主机),点击右上角Add Proxy Host(添加代理主机);
- 核心参数填写(关键项):
- Domain Names(域名):填写已解析到服务器的域名(需提前在域名服务商做 A 记录解析);
- Scheme:后端服务协议,一般选
http; - Forward Hostname/IP:后端服务地址(本机 Docker 服务填写
172.17.0.1,外部服务填写对应 IP); - Forward Port:后端服务端口(如 Zabbix 的 8080、云桌面 6080 等);
- 可选配置:开启
Block Common Exploits(防护常见漏洞)、Websockets Support(支持 WebSocket,适配实时通信服务);
点击Save,完成基础反向代理配置。
配置完成后,访问域名即可自动转发到后端服务,无需手动暴露后端端口。
四、SSL 证书配置(HTTPS 加密)
Nginx Proxy Manager 支持自动申请 Let's Encrypt 免费证书、导入第三方证书两种方式,实现全站 HTTPS 加密。
方式 1:面板自动申请 Let's Encrypt 免费 SSL 证书(推荐)
- 编辑已创建的代理主机,切换到
SSL选项卡; - SSL Certificate 选择
Request a new SSL Certificate; - 开启
Force SSL(强制跳转 HTTPS); - 填写邮箱(用于证书到期提醒),勾选同意证书服务协议;
- 点击保存,面板自动申请、部署、配置证书,证书自动续期,无需手动操作。
方式 2:导入阿里云 / 腾讯云第三方 SSL 证书
步骤 1:申请免费证书
登录阿里云 SSL 证书服务,领取DV 单域名免费试用证书,下载key私钥文件、pem证书文件。
步骤 2:面板导入证书
顶部导航栏进入SSL Certificates,点击Add SSL Certificate→ 选择Custom;
填写证书名称(自定义);
分别上传:Certificate Key(key私钥)、Certificate(pem证书)、Intermediate Certificate(中间证书);
保存后,回到代理主机,SSL 选项卡选择刚导入的证书,开启强制 HTTPS 即可。
五、总结
本文基于 Docker Compose 实现 Nginx Proxy Manager 一键部署,完成了反向代理配置、SSL 证书申请 / 导入、HTTPS 强制加密全流程实操。Nginx Proxy Manager 大幅简化了传统 Nginx 运维工作,可视化操作降低技术门槛,结合 Docker 容器化特性,适配国产银河麒麟、CentOS 等系统,可用于网站部署、内网服务外网暴露、云桌面 / 监控系统域名访问等场景,是云原生运维、Web 服务部署的必备工具。