上传文件时,apache2不会刷新响应数据

时间:2014-06-18 10:53:25

标签: tomcat apache2 amazon-elb

在提出问题之前,我会尝试提供一些背景信息。

设置

我有一个apache2(v2.4)服务器通过一个简单的ProxyPass代理请求到我的本地Apache Tomcat(v6)。

Proxy / http://localhost:8080/

服务

我们的服务处理一个文件,当它完成时,将状态发送回客户端。即使对于小文件,我们处理文件的速度也很慢(预期)。因此,一个30kb的请求可能需要5m左右。

目标

为避免因为IDLE而导致连接被丢弃,我们每10秒向客户端发回一个空行。到目前为止,即使使用亚马逊ELB,也是如此的好。

因此,在实现中,我们使用Callable运行任务并每隔10秒轮询一次Future。当轮询超时时,我们会向客户端发送一个空行并强制刷新输出流。

问题

但所有这些东西只有在后端发送第一个'\ n'之前上传文件时才有效。

当我发送大文件(200mb)时,上传需要几分钟,客户端永远不会看到空行,连接完成时会丢失(因为空闲丢弃)。我们测试了这个直接请求Tomcat或ELB-> Tomcat而不是ELB-> Apache-> Tomcat或Apache-> Tomcat,客户端成功接收空白行。

0 个答案:

没有答案