1panel 面板怎么配置反向代理

juming
juming 正式会员超兽战士
发布于 2026-10-07 13:21 ·1 浏览 ·0 回复

照这篇做完,你就能在 1Panel 里把一个内网服务(比如跑在 8080 端口的应用)通过域名正常对外访问。

第一步:确认后端服务已经跑起来,并记下端口

这一步要拿到「代理目标地址」,也就是 1Panel 要把请求转发到哪里。

先确认服务在运行。如果服务是用 1Panel 应用商店或 Docker 装的,进左侧「容器」→「容器」列表,找到对应容器,看「状态」是不是「运行中」,再看「端口」列显示的映射关系,例如 0.0.0.0:8080->80/tcp,说明宿主机 8080 端口对应容器内 80 端口。

也可以在「主机」→「终端」里执行:

curl -I http://127.0.0.1:8080

能返回 HTTP/1.1 200 或 301/302 就说明服务正常。记下这个端口,后面要用。

注意:如果 curl 不通,先别急着配反向代理,代理只是转发,后端不通配了也是 502。

第二步:在 1Panel 创建反向代理网站

这一步要创建一个「网站」条目,它是反向代理的载体。

左侧菜单点「网站」→ 顶部「网站」标签 → 右上角「创建网站」。在弹出的对话框里:

  • 「类型」选择「反向代理」
  • 「主域名」填你要对外访问的域名,例如 app.example.com(多个域名用逗号隔开)
  • 「代号」可留空,系统会自动生成
  • 「代理地址」填后端地址,例如 http://127.0.0.1:8080
  • 「端口」保持「80」,暂时不勾 HTTPS

点「确认」,站点就建好了。

注意:如果后端是 Docker 容器,而 1Panel 的 OpenResty 也跑在容器里,写 127.0.0.1 可能连不上(那指向的是容器自己)。最稳的写法是「宿主机内网 IP:映射端口」,例如 http://192.168.1.10:8080;也可以试 Docker 默认网关 http://172.17.0.1:8080。

第三步:确认域名解析和防火墙

这一步保证外部流量能到达服务器。

到你的域名服务商控制台,给 app.example.com 添加一条 A 记录,指向服务器公网 IP。然后在 1Panel 左侧「主机」→「防火墙」,确认 80 和 443 端口是放行状态。云服务器还要在云厂商控制台的「安全组」里放行这两个端口。

解析生效后,浏览器访问 http://app.example.com 应该能看到后端页面。

第四步:配置 HTTPS

这一步让站点支持 https:// 访问。

左侧「网站」→「证书」→「申请证书」,选择「Let's Encrypt」,填域名、选择验证方式(HTTP 验证要求 80 端口可访问且域名已解析),提交后等待签发。

然后回到「网站」→ 点进你的站点 → 切到「HTTPS」标签 → 打开「启用 HTTPS」开关 → 在证书下拉框里选中刚申请的证书 → 打开「强制 HTTPS」→ 保存。

第五步:微调代理规则

这一步处理路径分流、WebSocket 等特殊情况。

在站点详情页切到「反向代理」标签,能看到已有一条 / 的规则。点「添加反向代理」可以再加:

  • 「代理路径」填 /api
  • 「代理地址」填 http://127.0.0.1:9000
  • 「发送域名」一般填 $host

如果后端是 WebSocket 服务(比如某些实时通讯、面板类应用),在同一条规则的「高级功能」里打开「WebSocket 支持」,否则连接会频繁断开。需要缓存的静态接口可以打开「缓存」并设置时间。

第六步:排查常见问题

  • 502 Bad Gateway:后端没起或端口写错。回到第一步用 curl 验证,或把代理地址换成宿主机内网 IP 再试。
  • 404 Not Found:代理路径和后端路由不匹配。比如后端本身没有 /api 前缀,却把路径配成了 /api,就会 404。
  • 一直转圈或页面空白:多半是 WebSocket 没开,或 HTTPS 站点代理到了 HTTP 后端但后端要求 HTTPS。
  • 想直接看生成的配置:站点详情页切到「配置文件」标签,能看到 1Panel 自动生成的 OpenResty 配置,排查时很有用。

注意:手动改过的配置文件,在面板里再次修改代理规则时可能被覆盖,建议改之前先备份。

小结

  • 反向代理的前提是后端服务本身可访问,先用 curl 验证端口。
  • 创建入口在「网站」→「网站」→「创建网站」→ 类型选「反向代理」。
  • Docker 场景下 127.0.0.1 容易踩坑,优先用宿主机内网 IP。
  • 域名解析 + 安全组/防火墙放行 80、443 是外部能访问的必要条件。
  • HTTPS 在「网站」→「证书」申请,再到站点「HTTPS」标签启用并强制跳转。
  • WebSocket 类服务记得在代理规则的高级功能里单独开启支持。
版权声明:本文来自 GJ站长论坛《1panel 面板怎么配置反向代理》
原文链接:https://www.gj0.com/thread-305.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~