46

proxy_passディレクティブを使用してファイルをアップロードするために、node.jsアプリケーションへのリバースプロキシとしてnginxを構成しました。それは機能しますが、私の問題は、nginxがファイル本体全体がアップロードされるのを待ってからアップストリームに渡すことです。アプリケーションでアップロードの進行状況を追跡したいので、これは私にとって問題を引き起こします。ファイル本体をリアルタイムでアップストリームにストリーミングするためにnginxを構成する方法はありますか?

4

3 に答える 3

40

(少なくとも現時点では) 方法はありません。nginx がアップストリームへの送信を開始する前に、完全なリクエストは常にバッファリングされます。アップロードされたファイルを追跡するには、アップロード進行状況モジュールを試すことができます。

更新: nginx 1.7.11 では、proxy_request_bufferingディレクティブが利用可能になり、リクエスト本文のバッファリングを無効にすることができます。ただし、注意して使用する必要があります。ドキュメントを参照してください。

于 2012-09-07T00:10:19.000 に答える
5

Tengine (nginx からのフォーク) は、proxy_request_buffering をオフに設定することで、バッファなしのアップロードをサポートします。

http://tengine.taobao.org/document/http_core.html

更新: nginx 1.7.11 では、上記の@Maxim Douninのように、 proxy_request_bufferingディレクティブが利用可能です。

于 2014-07-11T09:12:23.783 に答える
-3

私はそれを疑う:

proxy_buffering off;

必要なものです。http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_bufferingを参照してください

于 2012-09-05T13:39:11.600 に答える