Docker 部署 Nginx Proxy Manager:可视化反向代理 + SSL 证书一键配置

前言

在日常服务器运维、网站部署场景中,Nginx 反向代理、SSL 证书配置是高频需求,但传统手动修改 Nginx 配置文件、申请证书、配置 HTTPS 的方式繁琐易错。Nginx Proxy Manager(NPM) 是一款开源可视化 Nginx 管理工具,基于 Docker 一键部署,支持图形化配置反向代理、自动申请 / 导入 SSL 证书、域名转发、访问控制等功能,无需编写复杂 Nginx 配置,新手也能快速上手。本文结合 Docker Compose 一键部署,详细讲解反向代理配置、SSL 证书申请与导入全流程,适配 CentOS、银河麒麟 V10 等国产系统,可直接复刻操作。

一、Nginx Proxy Manager 核心介绍

Nginx Proxy Manager 是基于 Nginx 开发的可视化反向代理管理面板,核心优势:

  1. 图形化操作:网页端配置反向代理,无需修改配置文件;
  2. 一键 SSL 证书:支持自动申请 Let's Encrypt 免费 SSL 证书,自动续期;
  3. 证书导入:兼容阿里云、腾讯云等第三方 SSL 证书导入;
  4. 安全防护:可开启强制 HTTPS、Websocket 支持、漏洞防护、访问白名单;
  5. 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 登录面板并修改默认账号

  1. 访问 http://服务器IP:81,输入默认账号密码:
    • 邮箱:admin@example.com
    • 密码:changeme
  2. 首次登录强制修改管理员邮箱、用户名、密码,保存后重新登录。

3.2 新建反向代理主机

  1. 进入面板首页,点击 Proxy Hosts(代理主机) ,点击右上角 Add Proxy Host(添加代理主机)

  2. 核心参数填写(关键项):

    • 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 证书(推荐)

  1. 编辑已创建的代理主机,切换到SSL选项卡;
  2. SSL Certificate 选择Request a new SSL Certificate
  3. 开启Force SSL(强制跳转 HTTPS);
  4. 填写邮箱(用于证书到期提醒),勾选同意证书服务协议;
  5. 点击保存,面板自动申请、部署、配置证书,证书自动续期,无需手动操作。

方式 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 服务部署的必备工具。

相关推荐
木雷坞1 小时前
Open WebUI 连不上 Ollama:Docker Compose 排查记录
人工智能·docker·ai编程
AugustRed1 小时前
Docker原理和使用指南、常用命令、Compose多容器部署
运维·docker·容器
TheSumSt1 小时前
日常教程丨远程串流打游戏方法介绍(Parsec/Tailscale+Headscale+DERP+Sunshine&Moonlight)
linux·网络·经验分享·nginx·开源·玩游戏
像我这样帅的人丶你还1 小时前
🚀🚀🚀2026年还不会Nginx?
前端·nginx
三无推导1 小时前
One API Docker 部署实战:从 0 搭建多模型统一接口管理平台
运维·ubuntu·docker·容器·github·api网关·token管理
TechWJ2 小时前
被 Intercom Zendesk收费坑过?我用Chatwoot搭了个免费客服站
docker·ai·开源·客服·chatwoot
正经教主2 小时前
【docker基础】第四课:容器操作与数据管理
运维·docker·容器
好名字更能让你们记住我2 小时前
通过docker在本地部署博客系统服务
linux·运维·服务器·ubuntu·docker·容器
Plastic garden2 小时前
docker compose elfk
运维·docker·jenkins