[nginx] 突然504 Gateway Timeoutが発生して、なぜか勝手に直る。

こんにちは( 'ω’)ノ
ここ数日の間、当ブログが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は直りませんでした。
結局何をやっても直ってくれないんで、諦めモードでほったらかしにしてたんだけど、丸一日放置したまま夜寝て翌朝起きたら直ってたという…。
すっきり解決した気がしないけど、いったい何だったんだろうかね…。
ではまた(=゚ω゚)ノシ

Posted by 管理人