2012-04-05 74 views
1

我正在尝试解决上传到我们网站基础结构的问题。通过HTTP代理缓冲上传

当用户将媒体上传到我们的网站时,它会通过代理(通过我们的Web代理层)到具有有限数量线程的Java后端。当用户连接速度较慢或上传量较大时,会导致其中一个Java线程长时间打开,从而降低整体容量。

为了缓解这个问题,我想实现一个'上传代理',它将接受上传的整个HTTP POST数据,并且只有当它接收到所有数据时,它才会将该POST快速代理到Java后端,推动上传线程保持对HTTP代理开放的问题。

最初我发现Apache Traffic Server有一个'buffer_upload'插件,但它看起来有点流血,并且不支持URL中的正则表达式,虽然它可以解决我的大部分问题。

有谁知道代理产品能够做我建议的(除了Apache流量服务器)吗?我看到,Nginx已经相当详细地为代理设置了缓冲区设置,但是在打开后端连接/线程之前,似乎没有(从docs/explain)等待整个POST。我有这个权利吗?

干杯,

回答

0

其实,nginx的打开到后端的连接之前总是缓冲区请求。可以使用proxy_buffering关闭响应缓冲或为每个响应缓冲控制设置X-Accel缓冲响应标头。