记录生活
分享美好

【保姆级教程】Docker 部署 Nginx Proxy Manager:一键搞定反向代理与 SSL 证书自动续期

本文于 2026-03-02 21:39 更新,本站所发部分内容具有时效性,如有失效,请留言!

为什么需要 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 这个域名上:

  1. 在 NPM 面板顶部菜单栏点击 Proxy HostsAdd Proxy Host
  2. Details(基础详情)配置:
    • Domain Names: 填写你的域名(如 app.yourdomain.com,请确保域名已解析到该服务器 IP)。
    • Forward Hostname / IP: 填写本地服务地址(如 127.0.0.1 或 Docker 内部 IP)。
    • Forward Port: 填写服务端口(如 8080)。
  3. SSL(证书)配置:
    • 切换到 SSL 选项卡。
    • 下拉菜单选择 Request a new SSL Certificate
    • 勾选 Force SSL(强制 HTTPS)。
    • 勾选同意 Let’s Encrypt 服务条款。
  4. 点击 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: 请重点检查两件事:

  1. 你的域名是否已经准确无误地解析到了这台服务器的公网 IP。
  2. 服务器所在厂商的安全组(防火墙)是否已经开放了 80443 端口,必须保证这两个端口能被外网访问。

七、 总结

Nginx Proxy Manager 绝对是管理反向代理的终极神器,特别适合那些喜欢在家庭 NAS、软路由或 VPS 上部署各种 Docker 容器(All in One)的玩家。

可视化界面 + 自动续期 SSL,把原本极具门槛的 Nginx 配置降级成了“点击就送”,极大提升了我们的折腾效率,强烈推荐给各位站长部署!

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《【保姆级教程】Docker 部署 Nginx Proxy Manager:一键搞定反向代理与 SSL 证书自动续期》
文章链接:https://www.lanxh.com/3357.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。部分内容来源于网络如有版权问题请联系删除:admin@lanxh.com

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册