nginx-proxy-manager-zh 使用教程:10 分钟从零跑通 Nginx 反向代理与 SSL 自动续期

📅 发布时间:2026/8/22 5:46:53
nginx-proxy-manager-zh 使用教程:10 分钟从零跑通 Nginx 反向代理与 SSL 自动续期
nginx-proxy-manager-zh 使用教程10 分钟从零跑通 Nginx 反向代理与 SSL 自动续期【免费下载链接】nginx-proxy-manager-zh基于nginx-proxy-manager翻译的中文版本项目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zhnginx-proxy-manager-zh 是一款基于 Docker 部署的中文 Nginx 反向代理管理工具让你在浏览器里通过表单完成代理规则、SSL 证书和访问控制的全部配置不用手写一行 Nginx 配置。 先说它能替你解决什么假设你手上有 Jellyfin、Nextcloud、Grafana 好几个自托管服务。想让外网通过域名访问它们你得为每个服务手写一份 Nginx 配置server 块、proxy_pass、证书路径、证书续期……多一个服务多一份麻烦一个分号写错整个 Nginx 直接起不来。nginx-proxy-manager-zh 把这件事做成了填表单。它的原理一句话就能说清你在界面上填的内容会被渲染成 Nginx 配置文件系统先做语法校验通过后自动 reload你全程不碰 conf 文件。 10 分钟部署 nginx-proxy-manager-zh这一步做完你会得到一个可以通过 81 端口访问的中文管理界面。克隆仓库git clone https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh cd nginx-proxy-manager-zh在目录下新建docker-compose.yml内容如下services: app: image: chishin/nginx-proxy-manager-zh:release restart: always ports: - 80:80 - 81:81 - 443:443 volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt端口各管各的80/443 走代理流量81 是管理界面。两个 volume 分别存配置数据和证书容器删了数据还在。启动docker compose up -d浏览器打开http://你的服务器IP:81用默认账号登录邮箱adminexample.com密码changeme。登录后系统会强制你修改邮箱和密码这一步别跳过——这个邮箱用来接收证书过期提醒。日常三件事装好之后日常操作就三件挂域名、开 HTTPS、控访问。 怎么把一个服务挂上自己的域名这一步做完你会得到一个域名访问它就会被转发到内网的某个服务。打开界面点左侧主机 → 代理主机 → 添加代理主机填四项域名比如jellyfin.home.lab支持*.yourdomain.com这种通配符协议目标服务是 HTTP 还是 HTTPS转发主机名/IP目标服务的容器名或内网 IP转发端口目标服务监听的端口保存后稍等几秒用curl -I http://jellyfin.home.lab验证返回目标服务的响应头就通了。表单里的高级配置区可以直接粘贴自定义 Nginx 指令比如额外的 proxy 头、超时时间更深的缓存和压缩调优也可以在这里改模板源码放在backend/templates/想搞明白每个表单项对应哪段配置可以看这里。 自动续期的 HTTPS 怎么开这一步做完你会得到一张 Lets Encrypt 证书和一条 HTTP 到 HTTPS 的强制跳转之后每 90 天自动续期不用记日程。进入刚才那个代理主机的编辑页切到SSL标签证书颁发机构选 Lets Encrypt填一个真实邮箱收证书通知用的按需勾选强制 SSLHTTP 自动 301 到 HTTPS、HTTP/2 支持、HSTS申请成功后证书状态显示成功。系统在证书到期前 30 天会自动触发续期前提是 80/443 端口对公网可达。️ 怎么限制谁能访问这一步做完你会得到一个访问列表挂到代理主机上之后名单外的 IP 一律进不来。左侧菜单点访问列表 → 添加访问列表给列表起个名字比如仅内网在通信规则里加条目填 IP 或 CIDR如192.168.1.0/24选允许或拒绝回到代理主机的编辑页在访问列表下拉框里选中它规则语义是白名单匹配到的放行其余deny all。如果同时启用了 HTTP 基础认证还可以选满足任一条件让 IP 放行或账号放行二选一。 翻车急救包症状证书申请失败界面里证书状态显示失败通常卡在域名验证这一环。按顺序排查域名解析生效了吗dig short jellyfin.home.lab返回的 IP 必须是这台服务器的公网 IP不是 127.0.0.1 也不是内网地址。80 端口从公网打得通吗Lets Encrypt 从外部发起验证本地防火墙或路由器没放行的话验证请求根本进不来。看日志找具体原因docker compose logs -f日志里会给出 certbot 报的原始错误照着改比盲目重试有效。症状代理访问不通返回 502/504或者直接超时。排查思路是从外到内逐层验证目标服务活着吗在宿主机上直接访问http://内网IP:端口不通就先修服务本身。容器能到达目标吗代理容器和目标服务若不在同一个 Docker 网络用容器名互访会失败docker exec -it 容器名 curl -I http://目标容器名:端口Nginx 配置本身有没有问题docker exec -it 容器名 nginx -t90% 的 502 出在第 2 步转发主机填了宿主机 IP但目标服务只监听容器网络。把转发主机改成目标服务的容器名或同一网络的可达地址即可。现在打开你的服务器选一个手边的服务把它挂上第一个域名。【免费下载链接】nginx-proxy-manager-zh基于nginx-proxy-manager翻译的中文版本项目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考