Nginx の Warningログ

/var/log/nginx/error.log を見てみると、以下のような Warningログが大量にでていた。

2011/11/25 04:53:24 [warn] 17764#0: *9014074 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:04:28 [warn] 17766#0: *9020266 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:24:32 [warn] 17766#0: *9029016 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:50:15 [warn] 17768#0: *9039080 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream


これはバックエンドサーバからのレスポンスをメモリ上にバッファリングしようとしたが、すでに設定値いっぱいまで使われているため、一時ファイルに保存したよ という意味。
この場合、クライアントから再度同じリクエストがあると、メモリからではなく、一時ファイルから読み出すことになるのだろうからパフォーマンスは落ちるはず。
proxy_buffer_size, proxy_buffers の値をチューニングすべき(デフォルト値は 4KB 程度)。バッファリング自体が不要で、単にクライアントへレスポンスを返したいだけなら proxy_buffering を off にすべき。

参考リンク: HttpProxyModule#proxy_buffer_size