apache -> jetty)出现问题,随机拒绝分段上传 POST 请求,错误代码为 400 Bad Request。 apache 错误日志(在信息级-6ren">
gpt4 book ai didi

Apache 多部分 POST "pass request body failed"

转载 作者:行者123 更新时间:2023-12-04 08:36:32 25 4
gpt4 key购买 nike

我们的 Web 服务器(配置为 ssl -> apache -> jetty)出现问题,随机拒绝分段上传 POST 请求,错误代码为 400 Bad Request。 apache 错误日志(在信息级别)显示以下两个错误:

[info] [client x1.y1.z1.w1] (70007)The timeout specified has expired: SSL input filter read failed.
[error] proxy: pass request body failed to x.y.z.w:8087 from x1.y1.z1.w1
[info] [client x1.y1.z1.w1] Connection closed to child 74 with standard shutdown

或者
[info] [client x2.y2.z2.w2] (70014)End of file found: SSL input filter read failed.
[error] proxy: pass request body failed to x.y.z.w:8087 from x2.y2.z2.w2
[info] [client x2.y2.z2.w2] Connection closed to child 209 with standard shutdown

这两种情况都是客户端发出 400 Bad Request 的结果。有时我们的 jetty 服务器甚至看不到请求,这意味着它在 apaches 端被拒绝,有时它开始处理它只是被拒绝(这在我们的 UploadFilter 中表现为 MultipartException)

我们设置了 mod_proxy 以使用回退负载平衡方案,但日志显示尚未触发回退,这让我相信这不是问题的原因。

我尝试设置 SetEnv proxy-sendcl 1 但这并没有改变任何东西。

上传请求大约为 1mb。只有这些多部分文件 POST 请求失败,我们有多个 GET 请求同时进入,它们总是按预期工作。

如果有人可以分享任何建议或建议,我将不胜感激!谢谢

最佳答案

如果你正在使用一些支持 ajp 的后端服务器,比如 Tomcat,你可以尝试使用 mod_proxy_ajp 而不是 mod_proxy_http。我在一个繁重的上传应用程序上遇到了类似的问题,我通过更改来修复它

ProxyPass /myapp http://localhost:8080/myapp
ProxyPassReverse /myapp http://localhost:8080/myapp

经过
ProxyPass /myapp ajp://localhost:8009/myapp
ProxyPassReverse /myapp ajp://localhost:8009/myapp

当然,还需要在 tomcat 端启用 ajp 连接器。

希望能帮助到你!

关于Apache 多部分 POST "pass request body failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com