似乎 nginx 在将请求传递给上游服务器之前会对其进行缓冲,虽然在大多数情况下对我来说都可以,但它非常糟糕:)
我的情况是这样的:
我将 nginx 作为前端服务器来代理 3 个不同的服务器:
- 具有典型 php 应用程序的 apache
- 我用python和gevent构建的shaveet(一个开源comet服务器)
- 使用 gevent 再次构建文件上传服务器,代理上传到 rackspace 云文件,同时接受来自客户端的上传。
#3 是问题所在,现在我所拥有的是 nginx 缓冲所有请求,然后将其发送到文件上传服务器,文件上传服务器又将其发送到 cloudfiles,而不是在收到每个块时发送它(那些使上传速度更快的我可以将 6-7MB/s 推送到云文件)。
我使用 nginx 的原因是有 3 个不同的域和一个 IP,如果我不能这样做,我将不得不将文件上传服务器移动到另一台机器上。