問題タブ [transfer-encoding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - nginx、uwsgi、およびフラスコを使用したチャンク転送エンコーディングのヘッダーで返される Content-Length
nginx、uwsgi、およびフラスコでチャンク転送エンコーディングを使用すると、Content-Length
常にTransfer-Encoding: chunked
. ただし、HTTP 1.1 ではこの動作が禁止されています。nginx と uwsgi を構成して目的の動作を実現しようとしましたが (Content-Length
ヘッダーにない場合Transfer-Encoding: chunked
)、成功しませんでした。まず、サーバーとクライアントのコードがあります。
サーバーコード ( server.py
):
クライアント コード ( client.py
):
サーバーを実行し、クライアントでサーバーに接続しようとすると、次の出力が得られます。サーバー出力:
クライアント出力:
今のところ、すべて問題ないようです。ヘッダーには、Transfer-Encoding
なしがありContent-Length
ます。ここで、uwsgi ( uwsgi.py
) を組み込んでみます:
次のコマンドを実行します。
出力は、前の試行と同じです。したがって、まだ予想どおりです。では、nginx をデプロイしてみます。私の uwsgi 設定 ( uwsgi.ini
):
私のnginx構成(/etc/nginx/nginx.conf
):
nginx を起動してから実行します。
現在、出力には次が含まれていますContent-Length
。
nginx: proxy_request_buffering
、proxy_buffering
、proxy_http_version
およびとのコンテキストでさまざまな設定を試してみましたが、成功しませんでしたchunked_transfer_encoding
。ヘッダーに追加しましたが、問題は解決しませんでした。また、目的の動作を達成せずに uwsgi: 、、のさまざまなオプションを試しました (のヘッダーにはまだ存在します)。server
location
X-Accel-Buffering: no
wsgi-manage-chunked-input
http-raw-body
http-auto-chunked
http-chunked-input
Content-Length
Transfer-Encoding: chunked
次のバージョンのフラスコ、uwsgi、nginx を使用しています。
何が間違っている可能性がありますか?ありがとう。