nginx-proxy-manager-zh 反向代理管理教程:10 分钟部署,3 个场景
nginx-proxy-manager-zh 反向代理管理教程10 分钟部署3 个场景【免费下载链接】nginx-proxy-manager-zh基于nginx-proxy-manager翻译的中文版本项目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh手写 Nginx 配置文件有多劝退少个分号全站 502改一行要重启一次。nginx-proxy-manager-zh 把反向代理相当于网站的前台收发室外面来的请求由它转给内网服务管成了一屏可视化表单一条 Docker 命令就能跑起来。 为什么是它全中文界面不用啃英文文档。Docker 一条命令跑起来。Lets Encrypt免费 CA 机构证书自动申请、自动续期90 天周期不用你操心。提交表单后自动生成配置并重载 Nginx你永远碰不到 conf 文件。 10 分钟跑起来一键部署 nginx-proxy-manager-zh把下面内容存为docker-compose.yml你只需要把 volumes 两行改成自己想要的目录。镜像内置 Nginx、Certbot 和管理界面不用额外装任何东西。services: app: image: chishin/nginx-proxy-manager-zh:release restart: unless-stopped ports: - 80:80 # 对外 HTTP - 443:443 # 对外 HTTPS - 81:81 # 管理界面 volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt然后启动docker compose up -d浏览器打开http://服务器IP:81默认账号adminexample.com密码changeme。首次登录会强制改密码顺手把邮箱改成真的——证书临期提醒全靠它发邮件。81 端口只放管理访问别直接暴露到公网。 三个场景覆盖 90% 日常场景 A内网服务套上 HTTPSLets Encrypt 自动续期目标内网192.168.1.100:8096跑着 Jellyfin想变成https://jellyfin.home.lab。操作路径菜单主机 → 代理主机 → 添加代理主机填域名、转发地址和端口切到 SSL 标签选 Lets Encrypt勾上强制 SSL。关键配置项转发协议选 http 就行HTTPS 交给证书层处理强制 SSL会自动把 HTTP 访问 301 到 HTTPS。证书 90 天有效后台在到期前自动续期你不用登录服务器。验证curl -I https://jellyfin.home.lab返回 200浏览器地址栏出现锁形标志。场景 B给管理后台加 IP 白名单目标Gitea 或 Portainer 这类管理页只允许办公室 IP 访问。操作路径菜单访问列表 → 添加新建一个允许列表填 IP 或网段CIDR 写法如203.0.113.0/24回到对应代理主机在访问列表里选中它。关键配置项地址支持单 IP 和整个网段列表里还能加 Basic Auth用户名密码认证账号和 IP 规则可设成同时满足或任一满足。方向选允许后不在列表里的请求一律 403。验证家里网络访问收到 403办公室 IP 正常打开页面。场景 C批量管理多个域名通配符证书复用目标home.lab下十几个子域jellyfin、nextcloud、grafana一次性纳管。操作路径先申请一张*.home.lab通配符证书验证方式选 DNS 并填对应提供商凭据内置 dnspod、cloudflare 等见 global/certbot-dns-plugins.json之后每个子域建一个代理主机SSL 都指向这张证书访问列表选同一个。关键配置项通配符证书无法走 80 端口验证必须用 DNS 插件。内网没有 DNS 控制权SSL 标签里手动上传自签证书流程一样。验证证书页能看到一张*.home.lab挂着多个主机新增子域不用重新申请证书。 高级玩家的工具箱表单覆盖不到的才用下面这些按需取用。自定义配置单台主机加指令编辑代理主机 → 高级 → web server config直接写 Nginx 指令要改全局行为改 backend/templates/ 下的模板再重新构建镜像。注意作用域web server config 作用于整台主机location config 只作用于某个 location。性能参数加在高级 → web server config里参数建议值作用keepalive_timeout75s空闲连接保持时间proxy_read_timeout60s后端响应等待上限gzip on开启文本类响应压缩API 自动化界面上给当前用户签发 API 令牌接口实现见 backend/routes/tokens.jscurl 带 Bearer 头就能批量创建主机适合写进 CI 脚本。️ 踩坑速查3 个高频问题Lets Encrypt 证书一直申请失败DNS 没指过来。dig short jellyfin.home.lab返回的必须是这台服务器的公网 IP防火墙放通 80 端口。代理配好了打开是 502后端没监听那个端口。docker exec app curl -sI http://192.168.1.100:8096不通就先修后端服务通了再回来检查转发端口是不是填错一位。DNSPod 插件装不上ARM 机器缺 Python 依赖进容器补装docker exec -it app bash -c pip install --upgrade pip pip install certbot-dns-dnspod zope️ 源码地图想往下挖的话从这几个文件入手backend/internal/proxy-host.js— 代理主机的增删改核心逻辑backend/internal/certificate.js— 证书申请、续期与安装流程backend/templates/— 全部 Nginx 配置模板Liquid 语法backend/routes/— REST 接口定义每个资源一组路由backend/setup.js— 首次启动建库、生成默认账号frontend/js/app/router.js— 前端页面路由与状态nginx-proxy-manager-zh 把反向代理管理从背 Nginx 语法变成填表单。把 80、443、81 三个端口空出来10 分钟后你会拿到一个带 HTTPS 的自托管服务。【免费下载链接】nginx-proxy-manager-zh基于nginx-proxy-manager翻译的中文版本项目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考