Nginx Proxy Manager:用 Web 界面管 Nginx 反代,armv7 要停在 2.13.7
Nginx Proxy Manager 把 Nginx 的反向代理和 SSL 终止包成一个 Web 管理台。仓库 34.4k stars,MIT license,默认分支是 develop(官方 release 从 master 出),累计 2,615 commits;官网是 nginxproxymanager.com。一句话定位:Docker container for managing Nginx proxy hosts with a simple, powerful interface。
作者做这个项目的出发点很直白——给自己名下的 host 做反向代理加 SSL 终止,方式要简单,简单到猴子都会。高级选项可以有,但都是可选项,默认路径尽量压低门槛。
功能范围
- 管理界面基于 Tabler,兼具观感和安全性(Admin Interface)
- 不需要懂 Nginx,就能创建 forwarding domains、redirections、streams、404 hosts
- SSL 可用 Let's Encrypt 免费签发,也可上传自定义证书
- Access Lists 与 basic HTTP Authentication
- 高级 Nginx 配置只对 super user 开放
- 用户管理、权限、审计日志(User management, permissions, and audit log)
armv7:2.14+ 不再支持
armv7 从 2.14 起不再支持,根因不在项目本身,而是 Nodejs 放弃了 armhf。受影响的环境把镜像 tag 退到 2.13.7。
托管家庭网络的基本盘
要让外网访问家里的服务,三件事先落地:
- 路由器上把 80 和 443 做端口转发到服务器;
- 域名解析指向家里,可以是静态 IP,也可以用 DuckDNS / Amazon Route53 / Cloudflare;
- 用 Nginx Proxy Manager 当网关,转发到其它 web 服务。
快速部署
装好 Docker,写 docker-compose.yml:
services:
app:
image: 'docker.io/jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
启动:
docker compose up -d
管理界面走 81 端口:http://127.0.0.1:81。
./data 和 ./letsencrypt 这两个卷要挂出来,前者是应用数据,后者放证书;不持久化的话,容器重建时配置和证书都得重来。启动后界面有时不会立刻可用,多等一会儿——原因是 key 生成的熵(entropy)不够。
参与贡献
PR 提交到 develop 分支,CI 必须通过。develop 分支的文档预览在 https://develop.nginxproxymanager.com。