这是一个相当复杂的场景,所以我非常感谢任何指向正确方向的指针。
所以我在服务器A上设置了apache来代理服务器B的https流量,这是一个在varnish和apache后面的plone站点。
我连接到A并可以在https上浏览网站,一切都很好。但是,当我通过plone的POST表单上传文件时,问题就出现了。我可以上传小文件(~1 MB),但是当我尝试上传50MB文件时,我一直等到文件上传,当指示为100%时,我得到一个坏网关(收到代理服务器)来自上游服务器的无效响应。)
在我看来,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 ..有什么建议吗?提前感谢一百万!
答案 0 :(得分:0)
您检查了清漆配置吗? varnish有自己的一些超时,我熟悉send_timeout,如果它们在几秒钟内无法完成,它通常会破坏下载(Varnish对大型下载没有任何好处,因为你最终做了愚蠢的事情,如配置send_timeout = 7200到让它工作)。
此外,将first_byte_timeout设置为该后端的较大数字,因为大文件上传可能会延迟plone的响应,足以导致此问题。
答案 1 :(得分:0)
在apache虚拟主机文件中设置Timeout
和KeepAliveTimeout
对我有用。
示例:
Timeout 3600
KeepAliveTimeout 50