我正在尝试解决上传到我们的网络基础架构的问题。
当用户将媒体上传到我们的网站时,它会(通过我们的Web代理层)代理到具有有限数量线程的Java后端。当用户连接速度较慢或上传量较大时,这会使其中一个Java线程长时间打开,从而降低整体容量。
为了缓解这种情况,我想实现一个'上传代理',它将接受上传的整个HTTP POST数据,并且只有当它收到所有数据时才会快速将该POST代理到Java后端,推动上传线程被保持打开到HTTP代理的问题。
最初我发现Apache Traffic Server有一个'buffer_upload'插件,但它看起来有点尖锐,并且不支持URL中的正则表达式,尽管它可以解决我的大部分问题。
有没有人知道能够做我建议的代理产品(除了Apache Traffic Server)?
我看到Nginx对代理有相当详细的缓冲设置,但在打开后端连接/线程之前,似乎(从文档/解释)等待整个POST。我有这个权利吗?
干杯,
添
答案 0 :(得分:0)
实际上,nginx 始终在打开与后端的连接之前缓冲请求。可以使用proxy_buffering关闭响应缓冲,或者为每个响应的缓冲控制设置X-Accel-Buffering响应头。