504 Gateway Timeout (ゲートウェイタイムアウト) の意味、原因と解決、対処方法

ITで知っておくべき知識
スポンサーリンク

インターネットに接続してWEBブラウザから、URLを入力すると以下のように表示されてしまいました。

504 Gateway Timeout

nginx

 

このエラーは何なんでしょうか?

 

スポンサーリンク

504 Gateway Timeout (ゲートウェイタイムアウト) とは?意味と原因

504は、HTTPのステータスコードの一つであり、ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトしたという意味です。

 

Webブラウザでホームページを見るときには、WebブラウザとそのホームページのあるWebサーバが通信を行います。

Webブラウザに表示されるURLアドレスが、アクセスするWebサーバになるのですが、そのサーバから応答がない場合に「504 Gateway Time-out」が表示されます。

 

「応答を待ったけど時間切れになった」という意味です。

 

HTTPのステータスコードの500番台、5xx系はサーバー側のエラーで使われます。

504 Gateway Timeoutの解決方法、対策、回避方法

では、504 Gateway Timeoutが表示された場合、どのようにすれば解決できるでしょうか?

 

サーバが応答しない原因はいくつか考えられますが、たとえばテレビで紹介されて多くの人一斉にホームページを見に行ったり、人気アーティストのライブチケットや、人気ゲームなどの発売でアクセスが集中したり、あるいはWebサイトがDoS攻撃というサイバー攻撃を受けたりして、サーバがアクセスのリクエストをさばききれないときに表示されます。

 

Webサーバがダウンしている可能性が高いので、時間をおいて再度アクセスするか、そのサイトの関連情報を検索してみると良いでしょう。

 

このエラーに対しては、ユーザー側で対処方法とか回避方法はありません。

 

 

メルカリとかジョブカンとか新しいサービスで発生した場合、運営側のサーバーの原因である可能性が高いです。

ユーザー側での対処方法としては、以下の要にキャッシュを消してみる。

https://urashita.com/archives/18444

 

その後、

パソコン ⇒ ログアウトして再度ログイン

スマホアプリ ⇒ 終了し再度アプリを起動

 

これで解決できない場合は、ユーザー側はサーバー側の回復を待つしかありません。

ルーター等のハードウェアが原因の可能性は少ないと思います。

504 Gateway Timeout AWSで発生 ELB (Elastic Load Balancing) ALB の設定か?

サーバー運営者は、問題解決するしかありません。

Amazon AWSで、504 Gateway Timeoutが出るのは、ELB (ALB) の設定の可能性があります。

 

デフォルトでは、Elastic Load Balancing はアイドルタイムアウトを 60 秒に設定しています。

そこで、以下の設定を試してみます。

1. https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)にある Amazon EC2 コンソールを開きます。

 

2. ナビゲーションペインの [LOAD BALANCING] で [ Load Balancers] をクリックします。

 

3. ロードバランサーを選択します。

 

4. 下部のペインで、[Description] タブを選択します。

 

5. [Connection Settings] を見つけ、[(Edit)] をクリックします。

 

6. [Configure Connection Settings] ダイアログボックスで、[Idle Timeout] の値を入力します。アイドルタイムアウトの範囲は 1 ~ 3600 秒です。

 

7. [Save] をクリックします。

このようにELBのアイドルタイムアウトを設定してみて下さい。

 

ELBをALBに変更したら直った例もあります。

https://yomon.hatenablog.com/entry/2017/05/13/070714

php-fpm と nginxで504が出た時の解決方法

海外ブログですが、nginxで 「504 Gateway Timeout」が出た時の対策です。

https://asdqwe.net/blog/solutions-504-gateway-timeout-nginx/

各種設定を書いてあるので、分かりやすいと思う。

 

Qiitaにも簡単な記事がありました。

https://qiita.com/kinokosan/items/3aadb0bdfc6e2ae6de36

Apacheで504 Gateway Timeoutが出た時の解決方法

Apacheで504 Gateway Timeoutが出た場合、単にタイムアウト時間を延ばすなら以下のように設定するとよい。

https://stackoverflow.com/questions/57677878/http-504-gateway-timeout-apache-2-4-6

IISで504 Gateway Timeoutが出た時の解決方法

IISで504 Gateway Timeoutが出た場合、単にタイムアウト時間を延ばすなら以下のように設定するとよい。

https://stackoverflow.com/questions/49385961/increase-timeout-for-handler-to-avoid-504-gateway-time-out

メルカリ、ジョブカン、dアニメで504 gateway time out

メルカリ、ジョブカン、dアニメのサーバー側の問題です。

こればっかりは、ユーザーからはどうしようもないので、サービスが復旧するまでしばらく待ちましょう。