Nginx Proxy Manager:把反代这件事,从“命令行苦行”变成“点点鼠标就行”

三月 06, 2026 / Geron / 21阅读 / 1评论

如果你有一台小鸡,跑着博客、节点、面板、API,甚至还想顺手搞个家庭 NAS 的远程访问,那么你迟早会遇到一个问题:

我怎么把这些服务优雅地挂到域名上?怎么上 HTTPS?怎么管理证书?怎么做转发、重定向、访问控制?

过去的经典答案是:写 Nginx 配置,改一堆 server {},再 nginx -t,重载,出错,回滚,继续改。
Nginx Proxy Manager(简称 NPM) 的出现,把这套流程变成了一个更“人类友好”的方式:用 Web 面板管理 Nginx 反向代理与证书


它是什么?

Nginx Proxy Manager 是一个基于 Nginx 的可视化管理面板,你可以在浏览器里完成这些事:

  • 给服务添加反向代理(Reverse Proxy)

  • 一键申请/续期 Let’s Encrypt 免费证书

  • 管理域名、证书、转发规则

  • 添加访问控制(Basic Auth、IP 白名单/黑名单等)

  • 配置重定向(HTTP → HTTPS、301/302)

  • 查看代理状态和基础日志

一句话:它还是 Nginx,但你不需要每次都手写配置文件。 🧩


为什么很多人爱用它?

1) 反代配置超级快

想把 blog.example.com 指向本机 127.0.0.1:8090
NPM 里基本就是填表:

  • Domain Names:blog.example.com

  • Forward Hostname / IP:127.0.0.1

  • Forward Port:8090

  • 勾选 “Websockets Support”(如果你的服务需要)

  • 保存

完成。

2) HTTPS 变得很“傻瓜”

证书申请通常是反代里最烦的部分:验证方式、续期、证书路径、权限。
NPM 把它变成下拉框:

  • 选择 Let’s Encrypt

  • 填邮箱

  • 勾选同意条款

  • 一键申请

  • 可选强制 HTTPS / HSTS

然后它会自动帮你续期证书。🔒✅

3) 特别适合“一个 VPS 多个服务”

比如你同时跑:

  • Halo 博客(8090)

  • 节点面板(比如 8080)

  • 监控(3000)

  • 其他容器服务

NPM 就像一个“域名交通警察”🚦
把不同域名/子域名的请求分流到不同服务上,管理起来特别直观。


NPM 能做什么(功能清单)

  • Proxy Hosts:最常用,反向代理(域名 → 内网服务)

  • Redirection Hosts:重定向(比如 old 域名跳 new 域名)

  • Stream Hosts:TCP/UDP 转发(适合数据库、游戏服等场景,注意和你具体用途匹配)

  • Access Lists:访问控制(Basic Auth、IP 限制)

  • SSL Certificates:证书管理(Let’s Encrypt / 自签 / 导入)


适用场景举例(很贴近你的用法)

你用 Halo 做博客,通常是一个本地端口(例如 8090)。你希望:

  • 访问 https://blog.yourdomain.com 就能打开 Halo

  • 自动 HTTPS

  • 支持 WebSocket(如果主题或插件用到)

  • 以后再加别的服务也不乱

NPM 就非常合适:它专门擅长“多服务、多域名、统一 HTTPS 管理”


它的“缺点”和注意点(别只听优点 😼)

1) 多了一层面板,就多了一层需要保护的入口

NPM 自己也是一个 Web 服务。建议:

  • 给管理后台单独域名

  • 强密码 + 最好加访问控制(IP 白名单 / Basic Auth / 仅内网)

  • 不要把后台暴露给所有人随便访问

2) “面板化”意味着部分高级配置不如纯手写自由

NPM 允许加自定义 Nginx 配置片段,但如果你需要非常复杂的 Nginx 玩法,最终还是手写最强。

3) 对小内存机器要注意资源占用

它通常用 Docker 跑,会带数据库(常见是 MariaDB / SQLite 方案取决于镜像与版本)。
在 1C1G/1.25G 这种配置上,建议别同时跑太多“重面板”,否则容易内存紧张。


最后

如果你想要的是:

  • 快速把服务挂上域名

  • 一键 HTTPS + 自动续期

  • 统一管理多个反代规则

  • 不想天天编辑 Nginx 配置文件

那么 Nginx Proxy Manager 就像给你的服务器装了一个“反代驾驶舱”🛫
让反向代理从“手搓工程”变成“可视化维护”。


搭建

一步一输入命令即可

sudo apt install docker.io -y && sudo apt install docker-compose

sudo systemctl enable --now docker

mkdir /home/npm

cd /home/npm

nano docker-compose.yml

复制代码进入文件中
version: '3.8'

services:

  app:

    image: 'jc21/nginx-proxy-manager:latest'

    restart: unless-stopped

    ports:

      - '80:80'

      - '8080:81' #这里的8080可以用自定义端口

      - '443:443'

    volumes:

      - ./data:/data

      - ./letsencrypt:/etc/letsencrypt #到这里结束

启动
docker-compose up -d

开始
docker-compose start

停止
docker-compose down

文章作者:Geron

文章链接:https://blog.geron.top/archives/260306-1

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论