Apache/Perl 下的上传超时问题

6

我们的网站为会员提供了上传照片的表单,我们将其存储并允许他们分享。我们使用简单的表单POST来实现上传,然后使用Perl的CGI.pm处理文件。以下是我们的Apache设置:

Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

由于某些原因,我们的用户中有少部分人遇到了上传超时并失败的问题。以下是Apache日志记录的失败信息:

(104)Connection reset by peer: Error reading request entity data, referer: http://domain.com/upload/photo

起初我们认为这可能是因为$CGI::POST_MAX设置得太低,所以大型照片被拒绝了。即使将其增加到100 MB,问题仍然存在。我们无法复制此问题,并且似乎没有任何原因可以解释用户遇到问题的情况,因为它发生在不同的浏览器、操作系统等中。我们也不确定这是否与Perl或我们的Apache设置有关。
我希望能得到任何关于可能导致此问题发生的建议,并提出解决问题的建议。非常感谢您的帮助!

您能否重现相同用户上传相同图片的问题吗?这些用户是在Intranet还是Internet上(我的意思是可能只是某些网络问题)? - DVK
同一用户多次尝试上传相同文件是非常普遍的现象。这些用户是互联网用户。 - Russell C.
@RussellC. 你能解决这个问题吗?我目前也遇到了类似的情况,但找不到解决办法。 - Alex
2个回答

1
"Connection reset by peer"通常表示用户通过点击停止或离开页面来停止等待上传完成。

0

KeepAlive已启用,所以我认为这不会是一个问题。MaxKeepAliveRequests当前设置为100。你建议我们增加这个值吗?如果不是的话,你认为我们应该在Apache中增加什么具体的内容,更重要的是为什么? - Russell C.
我刚刚注意到Timeout变量被设置为200。也许这就是你所指的。这是低还是高?你建议将其更改为多少? - Russell C.
@Russel - 后者。超时。由于这些是互联网用户,文件很大,可能是200的问题,但不是100%确定-尝试更改为400,看看在几天内此类错误的平均数量是否会下降。 - DVK
@Russell - 可能有(我认为Google正在通过JS进行多部分上传),或者您可以做Flash相关的东西。 - DVK
老实说,我现在不记得了,但如果你在stackoverflow上搜索多部分上传,应该可以找到一些讨论此问题并提供详细信息的问题。 - DVK
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接