代码之家  ›  专栏  ›  技术社区  ›  deepak

无法在apache之后的乘客应用程序中上载

  •  1
  • deepak  · 技术社区  · 16 年前

    我无法上传一个8.4 MB的文件,在一个乘客应用背后的apache。通过scp传输同一个文件需要4.1分钟。

    [pid=10222 file=ext/apache2/Hooks。cpp:727 time=2010-05-18 07:13:14.842 ]: HTTP上传数据:对等端重置连接(104) 在'boost::shared\u ptr中 Hooks::receiveRequestBody(request\u rec*,const char*)'(Hooks.cpp: 在“int Hooks::handleRequest(request\u rec*)”中(Hooks。cpp:459)

    注:用户没有取消或任何东西。他在火狐上:-)

    1. [pid=16593文件=ext/apache2/Hooks。cpp:727 time=2010-05-23 23:06:12.156 ]: mod\u passenger中出现意外错误:看起来浏览器没有 完成文件上传:它说它将上传6610086\ 字节,但它在发送610155字节后关闭了连接。这个 用户可能在浏览器或其实习生中单击了“停止”\ 停滞不前。 在'boost::shared\u ptr中 Hooks::receiveRequestBody(request\u rec*,const char*)'(Hooks.cpp: 1084) 459)

      注:用户没有取消或任何东西。他在IE6上:-)

    2. 00:40:18.697 ]: mod\ U passenger中出现意外错误:无法将数据发送到 ApplicationPool服务器:write()失败:管道断开(32) 回溯: 在'virtual boost::shared\u ptr'中 乘客::ApplicationPoolServer::客户端::get(const Passe\ '池选项'(ApplicationPoolServer.h: 在“int Hooks::handleRequest(request\u rec*)”中(Hooks.cpp: 523)

    问题是:

    1. 为什么文件没有上传?
    2. apache中文件上载的吞吐量和性能最佳实践。
    3. 乘客
    4. 我也试过莫德波特, http://modporter.com ,似乎不是 来帮忙。

    PS:使用RubyOnRails和apache上的mod\u rails一起部署, http://www.modrails.com/

    当做,

    2 回复  |  直到 16 年前
        1
  •  0
  •   tadman    16 年前

    如果上传610155字节需要1200秒怎么办?这似乎完全合理。HTTP传输通常不像scp这样的机制那样具有攻击性,而且往往会拖得更久,因为HTTP在上传方面不是特别有效。

    如果超时对情况有直接影响,您可以尝试打开超时,或者记住,某些客户端可能通过防火墙连接,无论出于何种原因,防火墙都会将连接限制在最长时间内,通常为10分钟左右。

    你能用相似的速度从一个连接复制这个问题吗?或者在一个更大的文件里?

        2
  •  1
  •   Community Mohan Dere    9 年前

    不幸的是,这可能是一个野生动物的错误。请参阅此乘客错误报告:

    Not able to upload in a passenger app behing apache

    还有这个古老的webkit错误报告:

    https://bugs.webkit.org/show_bug.cgi?id=5760

    这就指向了苹果的一个bug报告,它要么无法查看,要么已经关闭。我刚刚在10.6.4的safari 5.0(6533.16)和passenger 2.2.14中遇到了这个问题,显然这个问题还没有解决。非常令人沮丧。

    解决方法是关闭vhost的keepalive。