宝塔Nginx免费防火墙不识别容器网站

在容器中创建网站,并通过宝塔面板的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免费防火墙 默认对站点有防护规则,但通过容器创建的网站,其流量可能无法被防火墙正确识别和放行,导致误拦

解决方案

第一步:删除原有的代理配置

在宝塔面板中,删除原来为容器网站创建的反向代理站点

第二步:新建反向代理站点

  1. 进入宝塔面板 → 网站添加站点
  2. 填写域名,并在 反向代理 栏中填入容器后端地址(例如 http://127.0.0.1:40100)。
  3. 提交创建。

第三步:修改Nginx配置文件

  1. 创建完成后,找到该站点的 配置文件
  2. server_name 行末尾的端口号(如 :80删除
    • 修改前: server_name sllot.chaxil.top:80;
    • 修改后: server_name sllot.chaxil.top;
  3. 保存配置文件。

第四步:在防火墙中启用站点保护

  1. 打开 Nginx免费防火墙 设置页面。
  2. 站点配置 列表中,勾选刚才创建的反向代理站点。
  3. 保存防火墙规则。

第五步:测试验证

完成以上步骤后,通过命令行或浏览器测试访问:

curl -I https://sllot.chaxil.top/
HTTP/2 200

返回 200 状态码,表示访问成功,防火墙已正确放行

注意:该方法仅适用于容器的反向代理

要安装Nginx免费防火墙,你的nginx需要是 编译安装 的,如果是极速安装可能会出问题