用 Nginx Proxy Manager 做反向代理:图形化界面让 Homelab 上手门槛归零

82次阅读
没有评论

Homelab 的端口困境

如果你在家里或自己的小服务器上跑过多个服务,一定遇到过这种烦恼:Plex 在 32400 端口,Nextcloud 在 8080,Home Assistant 在 8123,qbittorrent 在 8081……每个服务都要记住一串数字,防火墙还要开放一堆端口。时间一长,不仅自己记不住,公网暴露的面也越来越大。

反向代理就是解决这个问题的标准答案。但传统 Nginx 配置对很多人来说门槛不低——要写 server 块、location 规则、SSL 证书路径,改错一个字符就起不来。Nginx Proxy Manager 的价值,就是把这些复杂的配置变成点点鼠标就能完成的事。

Nginx Proxy Manager 是什么

Nginx Proxy Manager(简称 NPM)是一个基于 Nginx 和 Docker 的图形化反向代理管理工具。它把 Nginx 的核心能力(反向代理、负载均衡、SSL 证书、访问控制)包进了一个干净的 Web UI 里,同时底层仍然是标准的 Nginx 配置,所以性能和稳定性都有保障。

它的作者 jc21 把它开源在 GitHub 上,Docker 镜像名就是 jc21/nginx-proxy-manager。2026 年的最新版本已经支持 Let’s Encrypt 泛域名证书、DNS challenge、访问列表、404/500 自定义页面等高级功能,对于个人 Homelab 来说完全够用。

安装:Docker Compose 一键启动

最推荐的部署方式是 Docker Compose。下面是一份可以直接复制使用的配置:

version: '3'
services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

说明几点:

  • 80 和 443 是 Nginx 的 HTTP/HTTPS 入口,必须映射到宿主机。
  • 81 是管理后台的端口,部署后通过 http:// 服务器 IP:81 访问。
  • 两个 volume 分别保存配置数据和 Let’s Encrypt 证书,删除容器也不会丢失。

保存为 docker-compose.yml 后,执行 docker compose up -d,大概 30 秒就能跑起来。

初始化配置

首次打开管理后台,用默认账号登录:

  • 邮箱:admin@example.com
  • 密码:changeme

登录后系统会强制你修改邮箱和密码。建议顺手把默认账号删掉,新建一个自己的管理员账号。然后进入 Settings → SSL Certificates,这里可以上传自己的证书,也可以直接申请 Let’s Encrypt 免费证书。

添加第一个代理主机

假设你已经在内网跑了一个服务,地址是 http://192.168.1.100:8123,你希望通过 https://home.example.com 访问它。操作步骤如下:

  1. 点击 Hosts → Proxy Hosts → Add Proxy Host。
  2. Domain Names 填入 home.example.com。
  3. Forward Hostname / IP 填入 192.168.1.100。
  4. Forward Port 填入 8123。
  5. 打开 Block Common Exploits,开启基础 WAF 规则。
  6. 在 SSL 标签页选择之前申请好的证书,勾选 Force SSL 和 HTTP/2 Support。
  7. 保存。

整个过程不到一分钟,不需要手写任何 Nginx 配置。如果你用的是 Cloudflare 做 DNS,还可以在 NPM 里用 DNS challenge 申请泛域名证书,一次配好,所有子域名都能自动 HTTPS。

访问控制:给敏感服务加一道锁

不是所有服务都适合直接暴露到公网。NPM 的 Access Lists 功能可以基于 IP 段或 HTTP 基本认证来做限制。比如你的管理类服务,可以只允许家庭内网 IP 访问;或者给某个服务加上用户名密码,即使域名被扫到也不会直接暴露。

配置方式也很简单:在 Access Lists 里创建一个规则,然后在代理主机的 Access 标签页选择它即可。这个底层就是 Nginx 的 allow/deny 和 auth_basic,但完全不需要你接触配置文件。

适合谁用

Nginx Proxy Manager 最适合已经会一点 Docker、但不想在 Nginx 配置上花太多时间的人。它不是企业级方案,但个人服务器、家庭内网、小型 VPS 场景下非常顺手。如果你还在用记端口的方式管理服务,值得一试。

好的工具不是增加复杂度,而是把复杂度藏起来。Nginx Proxy Manager 没有取代 Nginx,只是让大部分人用不到那 80% 的复杂配置。

正文完
 0
wang
版权声明:本站原创文章,由 wang 于2026-07-15发表,共计1921字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)