Apache 中出现间歇性代理错误:“部分结果有效,但处理不完整”,并显示“AH01110:读取响应时出错”

Apache 中出现间歇性代理错误:“部分结果有效,但处理不完整”,并显示“AH01110:读取响应时出错”

我在 CentOS 7.8 上使用 Apache 2.4.43、Varnish 6 和 PHP-FPM 来服务 Magento 2 网站。

Varnish 监听端口 80。Apache 监听 8080 来为 Varnish 提供内容,同时监听端口 443,它将 HTTPS 请求代理到 Varnish,如下所示:

ProxyPreserveHost On
ProxyPass         / http://127.0.0.1:80/
RequestHeader     set X-Forwarded-Port  "443"
RequestHeader     set X-Forwarded-Proto "https"

这对大多数请求都有效,但偶尔(约 10% 的请求)我会收到 Varnish 和 Apache 的 503 响应。我在 Apache 日志中看到的唯一错误是这个:

[proxy_http:error] [pid 6719:tid 140054596265728] (70008)Partial results are valid but processing is incomplete: [client x.x.x.x:53760] AH01110: error reading response, referer: http://example.com

如果我重试请求,它通常会立即生效,尽管有时我必须刷新几次才能满足请求。我注意到,在发出大量请求时(即包含数百个外部资产的页面),这种情况发生得更频繁。我还注意到似乎这在较大的文件上会发生,而在小文件上不会发生。

我猜测这可能是某种超时,但我不确定要调整哪些值或如何进一步调试它。

我尝试过的方法包括:

  • 这个答案涉及更改我不使用的模块(Forge Rock OpenAm)。
  • 这个建议禁用mod_reqtimeout,我试过但没有帮助。
  • 我尝试过,KeepAlive Off但没有帮助。
  • 我尝试retry=0在末尾添加ProxyPass,这显然应该允许失败的代理连接立即重试,但这没有帮助

任何帮助深表感谢。

相关内容