Nginxでupstream sent too big headerのエラー対処法

upstream sent too big headerエラー

Nginx + PHP-FPM構成で、クライアント環境(ブラウザ設定)によっては以下のようなエラーが発生してページが閲覧できない場合があります。

[error] 819#0: *38 upstream sent too big header
while reading response header from upstream, client: ***.***.***.***,
server: localhost, request: "POST ******** HTTP/1.1",
upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host:
"********", referrer:
"http://**********"

エラー対処法

Nginxのconfファイルでfastcgiのバッファー関連のパラメータを以下のように調整します。

        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;

これで正常にページが表示できるようになります。