需通过宝塔反向代理将二级域名分发至不同本地端口服务:先确认服务运行并放行端口,再为各二级域名添加独立站点,配置目标URL代理规则,补充Header透传与跨域设置,最后验证响应并查日志排错。

如果您希望在宝塔面板中将不同二级域名指向同一服务器上的不同本地服务(如8080端口的Node.js应用、3000端口的前端开发服务),需通过反向代理功能实现请求分发。以下是具体配置步骤:
一、确认目标服务已正常运行
反向代理生效的前提是后端服务已在服务器本地监听指定端口并可被127.0.0.1访问。若服务未启动或防火墙阻止本地回环访问,代理将返回502错误。
1、使用命令 netstat -tuln | grep :8080 检查目标端口是否处于 LISTEN 状态。
2、执行 curl http://127.0.0.1:8080 验证服务响应内容是否正常。
3、确认宝塔面板中的“安全”页面已放行对应端口(如8080、3000等)的入站规则。
二、为二级域名添加网站站点
宝塔反向代理必须基于已创建的网站站点进行配置,不可直接对IP或未绑定域名操作。每个二级域名需单独添加为一个站点,且域名解析须提前指向服务器IP。
1、进入宝塔面板「网站」页面,点击「添加站点」。
2、在「域名」栏填写完整二级域名,例如 api.example.com 或 admin.example.com。
3、根目录可设为默认路径,PHP版本选择「纯静态」,其余选项保持默认,点击提交。
三、配置反向代理规则
代理规则定义了如何将该站点的HTTP/HTTPS请求转发至本地服务地址。支持HTTP与HTTPS后端,但协议需与目标服务实际监听方式一致。
1、在网站列表中找到刚添加的二级域名站点,点击右侧「设置」。
2、切换至「反向代理」选项卡,点击「添加反向代理」。
3、在「代理名称」中输入标识性名称,如 node_api_service。
4、在「目标URL」中填写后端服务地址,格式为 http://127.0.0.1:8080(若服务启用HTTPS则填 https://127.0.0.1:8443)。
5、勾选「启用代理Websocket」(如后端使用WebSocket连接,例如Vue DevServer或Socket.IO服务)。
6、点击「提交」保存规则。
四、处理跨域与Header透传问题
部分后端服务依赖原始Host头或需要特定响应头(如Access-Control-Allow-Origin)。默认代理会修改或丢弃某些Header,需手动补充规则以确保兼容性。
1、在该站点「设置」→「反向代理」中,找到已添加的代理条目,点击「编辑」。
2、展开「高级选项」,在「请求头」区域添加:
Host $host(强制透传原始Host头)。
3、在「响应头」区域添加:
Access-Control-Allow-Origin *(如需开放跨域)
X-Real-IP $remote_addr(传递真实客户端IP)。
4、点击「保存」使Header规则生效。
五、验证代理结果与日志排查
配置完成后需立即验证请求是否正确抵达后端,并检查异常响应来源。宝塔提供实时代理日志,便于定位502、504等典型错误。
1、在浏览器访问 https://api.example.com/health,观察是否返回后端服务响应。
2、进入站点「设置」→「反向代理」→「查看日志」,筛选最近10分钟记录。
3、若出现 connect() failed (111: Connection refused),说明后端服务未运行或端口错误。
4、若出现 upstream timed out (110: Connection timed out),检查后端是否响应过慢或存在连接池耗尽问题。










