nginxはリクエストをupdstreamサーバーに渡す前にバッファリングしているようですが、ほとんどの場合は問題ありませんが、私にとっては非常に悪いです:)
私の場合は次のようになります。
3つの異なるサーバーをプロキシするフロントエンドサーバーとしてnginxを使用しています:
- 典型的なphpアプリを備えたApache
- python と gevent を使用して私が構築したshabet (オープン ソースのコメット サーバー)
- クライアントからのアップロードを受け入れながら、ラックスペース クラウドファイルへのアップロードをプロキシする gevent で再構築されたファイル アップロード サーバー。
#3は問題です。現在私が持っているのは、nginxがすべてのリクエストをバッファリングしてから、それをファイルアップロードサーバーに送信し、ファイルアップロードサーバーが、取得した各チャンクを送信するのではなく、それをcloudfilesに送信することです(アップロードを私は6-7MB /秒をクラウドファイルにプッシュできます)。
私が nginx を使用する理由は、1 つの IP を持つ 3 つの異なるドメインを持つためです。それができない場合は、ファイルアップロード サーバーを別のマシンに移動する必要があります。