こんにちは( ‘ω’)ノ
ここ数日の間、当ブログが504 Gateway Timeoutでアクセスできなくなってしまってました。
前にもこういうことがあって、そのときはサーバー再起動で解決したんだけど、今回はそれで済みませんでした。
504 Gateway Timeoutとか502 Bad Gatewayは、nginxとphp-fpm(fastcgi)の間で行う処理が長すぎる場合やwordpressの更新とかで発生するらしいです。
んで、エラーログにはこんな記録がありました。
*67841 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/4/36/0000002364 while reading upstream, client: ●●●.●●.●●.●●, server: ice-military.com, request: "GET /category/pc_my_server/linux_server/linux_apache HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.ice-military.com"
端的にphpを処理するためのゲートウェイ “fastcgi://127.0.0.1:9000″ へのタイムアウトが発生したってことなので、nginx.confのserverディレクティブの中に設定を書き加える。
nginx.conf
# vim /etc/nginx/nginx.conf events { worker_connections 2048; } http { proxy_max_temp_file_size 8192M; proxy_buffers 100 64k; proxy_buffer_size 64k; …… include /etc/nginx/conf.d/*.conf; fastcgi_connect_timeout 75;(デフォルト60秒) fastcgi_send_timeout 300;(デフォルト60秒) fastcgi_read_timeout 300;(デフォルト60秒)
php.ini
# vim /etc/php.ini max_execution_time = 3000(デフォルト30)
php-fpm
# vim /etc/php-fpm.d/www.conf request_terminate_timeout = 300(デフォルト0)
保存したらphp-fpmとnginxをリロード…。
と、ぐぐると大体はこういう感じの設定が出てくるんだけども、今回はこれでも504 Gateway Timeoutは直りませんでした。
結局何をやっても直ってくれないんで、諦めモードでほったらかしにしてたんだけど、丸一日放置したまま夜寝て翌朝起きたら直ってたという…。
すっきり解決した気がしないけど、いったい何だったんだろうかね…。
ではまた(=゚ω゚)ノシ
コメント