我正在运行一个简单的服务器应用程序来接收来自上传网络客户端的上传。它基于精细的上传器Java示例,并且在Tomcat6中运行,Apache位于它的前面,并使用ProxyPass来路由请求。我遇到偶尔的问题,上传到100%但最终失败。在服务器日志以及客户端上,我可以看到Apache在代理服务器上发生了502错误。重新组装上传文件时服务器超时
努力,看到这个自己后,我实现了真正的大文件时出现问题。 Java服务器应用程序花费了超过30秒的时间将这些块重组为一个文件,因此Apache将终止连接并停止等待。我将Apache Timeout增加到了300秒,这应该在很大程度上纠正这个问题,但潜力依然存在。
其他方式来处理这个以便当应用程序被装配在服务器上的数据块Apache和Tomcat之间的连接没有杀死任何想法?我目前正在使用2 MB大块,并且正在考虑也许我应该使用更大的块大小。组装服务器代码所需的块数量可能会更快。我可以测试,但除非加速是戏剧性的,否则似乎问题仍然存在,只会等待足够大的上传来触发它们。
[错误的网关502错误使用Apache MOD \ _proxy和Tomcat](可能重复http://stackoverflow.com/questions/169453/bad-gateway-502-error-with-apache-mod-proxy-and- tomcat) –
我不这么认为。我明白为什么超时正在发生,我正在要求Fineuploader提供避免它的策略。假设服务器真的需要10分钟才能从发送的所有数据块中组装文件,但将超时时间配置为> 10分钟,客户端和服务器连接如何更改? –
Fine Uploader真的只能改变块大小。问题显然在服务器上。下面@Ray没有提到的另一个选择是使用Fine Uploader S3。 S3是一个可扩展的,可用的,低延迟的数据存储,根据我的经验,即使将多GB文件组合在一起时,它的超时时机也非常低。 –