使用Apache和mod_proxy发布多部分表单数据到mongrel实例的问题

我试图在我的本地机器上尽可能地模拟我的网站的生产环境。 这是一个使用Apache w / mod_proxy将请求转发给杂种群集的rails站点。 在我的Mac OSX Leopard机器上,我有默认安装的apache运行,并configuration了一个虚拟主机,使用mod_proxy将请求转发到端口3000上的本地运行的mongrel实例。

<Proxy balancer://mongrel_cluster-development> BalancerMember http://127.0.0.1:3000 </Proxy> 

大多数情况下,这工作正常。 我可以使用我configuration的虚拟主机的ServerName来浏览我的开发站点,并且可以确认请求正在正确地转发到该mongrel实例。 但是,网站上有一个页面,它具有用于将图像上载到服务器的多部分表单。 当我张贴这个表格时,大约有5分钟的延迟,浏览器最终返回一个

 Bad Request Your browser sent a request that this server could not understand. 

在我的虚拟主机的错误日志中:

 [Tue Sep 22 09:47:57 2009] [error] (70007)The timeout specified has expired: proxy: prefetch request body failed to 127.0.0.1:3000 (127.0.0.1) from ::1 () 

如果我直接浏览到杂种实例( http://127.0.0.1:3000 ),同样的表单工作正常。 任何人都有什么想法可能是什么问题,以及如何解决? 如果有任何我忽略的重要信息,请发表评论,我可以join这个问题。

注意:经过进一步调查,这似乎是一个特定于Safari的问题。 该表单在Firefox中正常工作。

我认为这个问题是由cookie头长度的限制造成的。

cookie-header的'RFC 2109'的限制如下:

  • 至less300个cookies
  • 每个cookie至less有4096个字节
  • 每个唯一的主机或域名至less有20个Cookie

当Safari在某个时候发送一个大的cookie头时,Apache无法parsing它。 您可能需要使用tcpmon(或类似的)检查会话头。