4

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

所以我在服务器 A 上设置了 apache 来代理 https 流量 το 服务器 B,这是 varnish 和 apache 后面的一个克隆站点。

我连接到 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 ..有什么建议吗?提前一百万谢谢!

4

2 回答 2

0

你检查清漆配置了吗?varnish 有它自己的一些超时,我熟悉 send_timeout 如果它们未能在几秒钟内完成,它通常会中断下载(Varnish 对于大型下载确实没有任何好处,因为你最终会做一些愚蠢的事情,比如将 send_timeout=7200 配置为让它起作用)。

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

于 2013-04-30T07:57:08.120 回答
0

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

例子:

Timeout 3600
KeepAliveTimeout 50
于 2014-04-07T14:56:21.810 回答