はじめに
FuelPHPでBadGateway 502が出てしまい悩んだ時の対処方法です。いろいろ調べた結果きモジュール的には問題ないことがわかり、結局はnginxの設定に問題がありました。
環境
FuelPHP 1.7
nginx 1.8
php-fpm-5.6
php 5.6
Amazon Linux
概要
- nginxのログの参照
- nginxのパラメータの調整
- nginxの再起動
詳細
1. nginxのログの参照
とりあえず何がなんだかわからず起きた時が通常では出ないのですが、エラー発生時のみ発生しておりなんだこりゃって感じになってました。そこでログを参照しました。
2016/02/17 11:55:14 [error] 27407#0: *932 upstream sent too big header while reading response header from upstream, ...
上記のようなエラーが発生してました。どうやらバッファが足らないようです。
2. nginxのパラメータの調整
以下のように設定しました。一旦はこれであとでもう少し調整していきたいと思います。
(参考にしたサイトで少し大きすぎると指摘を受けていますので、今は開発中でしたので最終でチューニングかなと思ってます。)
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;
3. nginxの再起動
あとは反映させるためにnginxの再起動すればOKです。
sudo service nginx restart
あとがき
エラー画面に転送していて結果がでず困りましたが表示できるようにはなったのでよかったです。ある程度モジュールできたらパラメータの調整しなくちゃ・・・
その他
参考
Nginxでupstream sent too big headerのエラー対処法
Setting Nginx FastCGI response buffer sizes.