1panel 面板怎么配置反向代理
照这篇做完,你就能在 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 类服务记得在代理规则的高级功能里单独开启支持。
原文链接:https://www.gj0.com/thread-305.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。