Nginxアップストリーム応答が一時ファイルにバッファリングされます、nginx502エラー



Nginx An Upstream Response Is Buffered Temporary File



1.エラーログ:警告:アップストリーム応答が一時ファイルにバッファリングされます

The solution: increase fastcgi_buffers 8 4K fastcgi_buffer_size 4K

2.クライアントリクエストの本文は一時ファイルにバッファリングされます



The solution: increase client_max_body_size 2050m client_body_buffer_size 1024k

Nginxのバッファメカニズム:

からのFastCGIサーバー応答の場合、Nginxはメモリにバッファリングされてから、クライアントブラウザに順次送信されます。バッファのサイズとfastcgi_buffersfastcgi_buffer_size2つの値によって制御されます。



たとえば、次の構成です。

fastcgi_buffers 8 4K fastcgi_buffer_size 4K

fastcgi_buffersコントロールnginxcreate最大8つのバッファサイズは4Kであり、fastcgi_buffer_sizeの最初の処理バッファサイズ応答であり、前者には含まれていません。したがって、作成できる合計最大メモリバッファサイズは8 * 4K + 4K = 36kです。これらのバッファは、応答の実際のサイズに基づいて動的に生成されますが、一度だけ作成されるわけではありません。たとえば、8Kページの場合、Nginxは合計2 * 4Kの2つのバッファーを作成します。

応答もちろん、36k未満の場合、メモリ内のすべてのデータのすべての処理。 36kを超える場合の応答?これにおけるfastcgi_tempの役割。追加のデータは一時的にファイルに書き込まれ、このディレクトリに配置されます。同時に、同様の警告でerror.logが表示されます。



2010/03/13 03:42:22 [warn] 3994#0: *1 an upstream response is buffered to a temporary file /usr/local/nginx/fastcgi_temp/1/00/0000000001 while reading upstream, client: 192.168.1.111, server: www.xxx.cn, request: 'POST /test.php HTTP/1.1', upstream: 'fastcgi://127.0.0.1:9000', host: 'xxx.cn', referrer: 'http://xxx.cn/test.php'

明らかに、バッファは単語のセットが小さすぎます。Nginxハードディスクは頻繁に読み取りと書き込みを行い、パフォーマンスに大きな影響を与えますが、大きいほど良いという意味ではありません。

ターン:https://www.cnblogs.com/littlewrong/p/7076459.html