这是一个相当复杂的场景,所以我非常感谢任何指向正确方向的指示。
所以我在服务器 A 上设置了 apache 来代理 https 流量 το 服务器 B,这是一个位于 varnish 和 apache 后面的 Plone 站点。
我连接到 A 并可以在 https 上浏览该站点,一切正常。但是,当我通过 plone 的 POST 表单上传文件时,问题就开始了。我可以上传小文件(~1 MB),但是当我尝试上传一个 50MB 的文件时,我一直在等待文件上传,当指示为 100% 时,我得到一个 Bad gateway(代理服务器收到来自上游服务器的无效响应。)
在我看来,A 和 B 之间的通信超时,而不是被重定向到正确的 url,我得到一个错误的网关,更不用说文件没有上传了。
在我看到的apache日志上
[error] proxy: pass request body failed
根据其他线程的建议,我尝试了以下值但没有成功
force-proxy-request-1.0
proxy-nokeepalive
KeepAlive
KeepAliveTimeout
proxy-initial-not-pooled
Timeout
ProxyTimeout
Sooooo..有什么建议吗?提前一百万致谢!
最佳答案
你检查 Varnish 配置了吗? varnish 有它自己的一些超时,我熟悉 send_timeout,如果下载在几秒钟内未能完成,它通常会中断下载(Varnish 对于大量下载来说真的没有任何好处,因为你最终会做一些愚蠢的事情,比如配置 send_timeout=7200 到让它发挥作用)。
此外,为该后端将 first_byte_timeout 设置为更大的数字,因为大文件上传可能会延迟 plone 的响应,刚好足以导致这种情况。
关于apache - 带有大量 POST 上传和我的 apache + varnish + plone 设置的错误网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945285/