Nginxのfastcgi_buffer_sizeを設定

サーバーのエラーログを確認していたら下記エラーが出力されていたので調査したときの覚書。

環境: CentOS Stream 8, CPU:4コア, メモリ:4GB

エラー確認
# less /var/log/nginx/error.log

fastcgi_buffer_size 4096 is not enough for cache key, it should be increased to at least 8192

fastcgi_buffer_sizeはphp-fpmなどのFastCGIのレスポンスをキャッシュする。
レスポンスヘッダー部分は常にキャッシュしようとするが、それさえもキャッシュできない場合上記エラーとなる。
参考: Module ngx_http_fastcgi_module

fastcgi_buffer_sizeとfastcgi_buffersが設定してなかったので設定する。

下記のように設定変更した。
リバースプロキシとFastCGIで合計512MBメモリ消費する計算。
# less fastcgi_php.conf

# Buffer size
proxy_buffer_size 32k;
proxy_buffers 8 32k;
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;

テストして再読み込み。
# nginx -t
# systemctl reload nginx

topコマンドの後、M(Shift + m)でメモリ使用順で並び替えてみて確認する。
VIRT: 仮想メモリサイズ
RES: 物理メモリサイズ
SHR: 共有メモリサイズ

定期的にエラーログを確認する。


【関連記事】