本文へ移動
Webstudio YAS
  • About
  • Price
  • Work
  • Blog
  • Contact
  • About
  • Price
  • Work
  • Blog
  • Contact
  1. ホーム
  2. Blog
  3. nginx + php で504 Gateway Timeout(タイムアウト)設定あれこれ

公開日: 2021.10.20

nginx + php で504 Gateway Timeout(タイムアウト)設定あれこれ

nginx + php で504 Gateway Timeout(タイムアウト)設定あれこれ

目次

  • はじめに
  • PHPの設定
  • NGINXの設定
  • まとめ

はじめに

少し重い処理を実行した時におよそ1分で「504 Gateway Timeout」が発生。タイムアウトの時間をもっと長く設定する方法を調べてみた。

PHPの設定

php.ini

 max_execution_time = 30

数値はデフォルト値

phpスクリプト自身の実行時間。sleep()関数やファイルアップロードにかかる時間、データーベース間で発生する処理時間などは含まれない。処理が複数ファイル間で実行されている場合などはそれぞれのスクリプトで適応されるのでタイムアウトしない事もある。

php-fpm.conf

 request_terminate_timeout 0

数値はデフォルト値 0はOFFの意味

max_execution_timeで処理をkillできなかった場合に発動する。

設定の反映

#php-fpm再起動
sudo systemctl restart php-fpm.service

NGINXの設定

PHP側のみ設定しても、NGINX側の設定がボトルネックになる場合があるので、こちらも見直す。

/etc/nginx/nginx.conf

fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 60;

proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;

send_timeout 60;
keepalive_timeout 75;

数値はデフォルト値

  • fastcgi_○○は、nginxとphpでのやりとりの時間。はじめにconnectしてからリクエストをsend、応答を待つ時間がreadなので、php側で重い処理をする場合などはfastcgi_read_timeoutのみ設定すればいける。
  • proxy_○○は、nginxをプロキシサーバとして使っている場合に設定。
  • send_timeoutは、サーバとクライアント間でのタイムアウト時間。
  • keepalive_timeoutは、接続をキープする時間。

設定の反映

#nginx再起動
sudo systemctl restart nginx

まとめ

ブラウザから送られたリクエストがサーバで処理されて返ってくるまでに意外とたくさん経由しているので、それぞれのタイムアウト時間を考えなければいけなかった。

上記の設定を必ずしもすべて設定する必要はなく、今回は、「nginx.conf」のfastcgi_read_timeoutのみを長めに設定したらタイムアウトしなくなった。

どこでタイムアウトしているか見極めて設定することが大切ですね。AWSのELBを使っている場合はそちらにもタイムアウト関連の設定があったり、インフラって難しい。。。

タグ

  • 504
  • nginx
  • PHP
  • タイムアウト

関連記事

2020.10.21

Wixからさくらインターネットにお引越し(ドメイン移管)

Wixからさくらインターネットにお引越し(ドメイン移管)

2021.10.03

XSERVER X10 と AWS EC2 t2.micro の処理速度を比較してみた

XSERVER X10 と AWS EC2 t2.micro の処理速度を比較してみた

2021.10.11

【Xserverドメイン】メールサーバを残したままWEBサーバのみ他サーバへ向けるためのDNS設定

【Xserverドメイン】メールサーバを残したままWEBサーバのみ他サーバへ向けるためのDNS設定
Webstudio YAS
  • About
  • Price
  • Work
  • Blog
  • Contact
YAS プロフィール画像

長野県長野市在住
WEBエンジニア YAS

LINKS

  • X
  • Instagram
  • GitHub
Design
  • スタンダード
  • 和モダン
  • エンジニア
  • 信州ナチュラル
プライバシーポリシー

@ Webstudio YAS