有大量POST上传的糟糕网关和我的apache + varnish + plone设置

时间:2012-01-20 17:17:53

标签: apache ssl plone varnish proxypass

这是一个相当复杂的场景,所以我非常感谢任何指向正确方向的指针。

所以我在服务器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 ..有什么建议吗?提前感谢一百万!

2 个答案:

答案 0 :(得分:0)

您检查了清漆配置吗? varnish有自己的一些超时,我熟悉send_timeout,如果它们在几秒钟内无法完成,它通常会破坏下载(Varnish对大型下载没有任何好处,因为你最终做了愚蠢的事情,如配置send_timeout = 7200到让它工作)。

此外,将first_byte_timeout设置为该后端的较大数字,因为大文件上传可能会延迟plone的响应,足以导致此问题。

答案 1 :(得分:0)

在apache虚拟主机文件中设置TimeoutKeepAliveTimeout对我有用。

示例:

Timeout 3600
KeepAliveTimeout 50