You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署WordPress+Nginx时curl无额外Header返回空响应问题

问题根因
  • 你配置文件nginx-server.conf中的恶意爬虫拦截规则包含Curl关键字,curl默认发起请求时携带的curl/版本号格式User-Agent会命中该规则,Nginx返回444状态码(Nginx特有的状态码,代表直接断开TCP连接,不返回任何响应内容),和你遇到的curl: (52) Empty reply from server报错完全吻合。
  • 无User-Agent的请求默认不会触发当前拦截规则,若出现异常通常是其他兼容逻辑导致,可通过添加默认UA兜底解决。
解决方案

步骤1:调整爬虫拦截规则

编辑nginx-server.conf,找到#Block bad-bots下的if判断规则,删除规则中的|Curl|关键字即可放行默认curl请求。如果你的业务不需要拦截任何爬虫,也可以直接注释或删除整段if判断规则。

步骤2:添加无UA请求兼容(可选)

如果需要确保完全没有User-Agent头的请求也能正常处理,可以在nginx-server.conf的server块中添加以下配置,给无UA的请求设置默认UA值:

# 无UA请求添加默认UA
if ($http_user_agent = "") {
    set $http_user_agent "Mozilla/5.0 (compatible; DefaultServiceUA/1.0)";
}

步骤3:重载配置生效

修改完成后执行以下命令重载Nginx配置即可:

nginx -s reload
# 若为Docker容器部署,也可以直接重启容器
docker restart <你的WordPress容器名>
验证方法

执行以下两个请求验证配置是否生效:

  1. 默认curl请求验证:curl localhost:8080
  2. 无UA请求验证:curl -H "User-Agent:" localhost:8080
    两个请求都正常返回页面内容即为配置成功。

内容的提问来源于stack exchange,提问作者quimere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:24:07