雨云搭建 Nginx Proxy Manager 可视化管理反代教程

图形化 Nginx 反代管理:一键反代多站点、自动 Let's Encrypt 证书,与 Authelia 联动做登录保护
发布于
3

一台雨云 VPS 上跑了好几个自托管服务,每个都要 HTTPS、都要记端口,手动改 Nginx 配置又容易写错?Nginx Proxy Manager(简称 NPM)是一个带 Web 界面的 Nginx 管理面板,Docker 跑起来后,加域名、指上游、点一下就能开反代,还能自动申请和续期 Let’s Encrypt 证书。本文讲清它在雨云上的部署与日常用法。

Nginx Proxy Manager 解决什么痛点

它把”反代 + 证书”两件事做成了图形操作。传统做法要手写 server 块、配 SSL、设定时任务续证书;NPM 里填域名、填上游地址(比如 127.0.0.1:8080)、勾选「SSL 证书」「强制 HTTPS」,证书自动申请。对一台机器挂多个站点(Gitea、Vaultwarden、Umami 等)的场景尤其省事,所有反代在一个面板里集中管理。

在雨云 VPS 上部署 NPM

官方用 docker-compose 起两个容器:管理面板(app)和数据库(db)。端口规划:81 是管理后台,80/443 给实际流量:

version: "3"
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: jc21/mariadb-aria
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 改成强密码
      MYSQL_DATABASE: npm
    volumes:
      - ./mysql:/var/lib/mysql

关键点:默认管理员账号在首次登录 81 端口后强制改密码;/data/etc/letsencrypt/var/lib/mysql 都要挂卷,重建才不丢配置和证书。机器选型参考 雨云 VPS 新手指南,NPM 本身很轻。

添加代理主机(反代一个服务)

进后台「Hosts → Proxy Hosts → Add Proxy Host」:

  • Domain Names:填你的域名,且 DNS 的 A 记录已指向这台 VPS 公网 IP。
  • Forward Hostname / IP:上游地址,本机服务填 127.0.0.1,端口填服务监听端口(如 雨云搭建 Gitea 的 3000、雨云搭建 Vaultwarden 的 80)。
  • SSL:选「Request a new SSL Certificate」,勾「Force SSL」「HTTP/2」,证书自动下发并续期。

保存后访问域名即走 HTTPS 反代到上游服务。

Let’s Encrypt 证书自动续期

证书在添加代理主机时勾选申请即自动创建,NPM 内置续期调度,到期前自动续,不用手写 cron。前提是 80/443 端口放行且域名 A 记录正确解析到本机;若用 DNS 挑战可不受 80 端口限制(高级用法)。证书文件存在 /etc/letsencrypt 卷,备份时一并带走。

一个 VPS 反代多个站点

NPM 的核心价值就是”一机多站”。同一个 443 端口,靠不同域名(SNI)把流量分到不同上游:比如 git.example.com 指向 Gitea、pass.example.com 指向 Vaultwarden、stats.example.com 指向 雨云搭建 Umami 隐私统计。所有站点共用 80/443,各自独立证书,管理集中。

给反代加登录保护

反代后的后台属于敏感入口。NPM 自带 Basic Auth(在「Advanced」里配),更完整的企业级做法是叠加 雨云搭建 Authelia 统一登录网关:在 NPM 的 Advanced 自定义 location 里加 auth_request,让 Authelia 做 SSO 与 TOTP 二次验证,多个服务共享一套登录。

数据备份

需备份三处:/data(NPM 配置)、/etc/letsencrypt(证书)、/var/lib/mysql(数据库)。按 雨云搭建 BorgBackup 去重加密备份 的挂卷方式统一备份即可。

合规提醒

Nginx Proxy Manager 仅用于反代你有权运营和实名合规的域名与服务;不得用于未授权访问或绕过合规要求;涉及域名的实名与备案要求按相关规定执行。

配套与延伸

NPM 本身很轻,一台入门 VPS 就能带多个反代站点。选机器可在 雨云优惠入口 用优惠码 admin01 享五折,新用户 7 天无理由退款,先把 Gitea、Vaultwarden 这类服务都收进一个面板管理。

常见问题(FAQ)

Nginx Proxy Manager 和手改 Nginx 配置有什么区别?
NPM 把反代和证书做成图形操作,加域名、指上游、勾选即可,证书自动申请续期;手改要写 server 块、配 SSL、自己管续期脚本,容易写错。
Let's Encrypt 证书怎么自动续期?
添加代理主机时勾选申请证书,NPM 内置续期调度会在到期前自动续,前提 80/443 放行且域名 A 记录解析正确。
能一个 VPS 反代多个网站吗?
能。靠不同域名(SNI)把同一 443 端口的流量分到不同上游,每个站点独立证书、集中管理。
怎么给反代加登录保护?
可用 NPM 自带 Basic Auth,或叠加 Authelia 做 SSO 与二次验证,多个服务共享一套登录。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

用雨云 KVM 云服务器部署 Portainer 管理 Docker 容器:挂载 docker.sock、9443 HTTPS 访问、看日志改配置、compose 栈部署与升级备份,含优惠码 admin01 五折。