在容器中创建网站,并通过宝塔面板的Nginx进行反向代理时,即使宿主机直连后端端口成功,通过域名访问仍可能被拦截,返回 403 状态码
表现如下:
# 直连容器端口成功
curl -I http://127.0.0.1:40100
HTTP/1.1 200 OK
# 通过域名访问失败
curl -I https://sllot.chaxil.top/
HTTP/2 403
问题原因
宝塔的 Nginx免费防火墙 默认对站点有防护规则,但通过容器创建的网站,其流量可能无法被防火墙正确识别和放行,导致误拦
解决方案
第一步:删除原有的代理配置
在宝塔面板中,删除原来为容器网站创建的反向代理站点
第二步:新建反向代理站点
- 进入宝塔面板 → 网站 → 添加站点。
- 填写域名,并在 反向代理 栏中填入容器后端地址(例如
http://127.0.0.1:40100)。 - 提交创建。
第三步:修改Nginx配置文件
- 创建完成后,找到该站点的 配置文件。
- 将
server_name行末尾的端口号(如:80)删除。- 修改前:
server_name sllot.chaxil.top:80; - 修改后:
server_name sllot.chaxil.top;
- 修改前:
- 保存配置文件。
第四步:在防火墙中启用站点保护
- 打开 Nginx免费防火墙 设置页面。
- 在 站点配置 列表中,勾选刚才创建的反向代理站点。
- 保存防火墙规则。
第五步:测试验证
完成以上步骤后,通过命令行或浏览器测试访问:
curl -I https://sllot.chaxil.top/
HTTP/2 200
返回 200 状态码,表示访问成功,防火墙已正确放行
注意:该方法仅适用于容器的反向代理





