※本ページにはプロモーション(広告)が含まれています
ゲートウェイが上流サーバーからの応答を待ちきれずタイムアウトした状態のHTTPエラー。重いDB処理や外部API待ちで処理時間が長すぎる場合に発生する。
詳しい解説
504 Gateway Timeoutは、ゲートウェイやプロキシとして動作するサーバーが、上流サーバーからの応答を待つ間にタイムアウトした場合に返されるHTTPステータスコードです。502と似ていますが、502が『異常な応答』なのに対し、504は『応答が全く返ってこない』状態を示します。CDN・ロードバランサー・リバースプロキシ経由のアクセスで頻発します。
主な原因は次の4系統。①バックエンド処理の長時間化: データベースの重いクエリ、外部API待ち、レポート生成など、1リクエスト内で処理が完了しなかった。②バックエンドサーバーのフリーズ: リソース枯渇で応答不能。③ネットワーク遅延: プロキシとオリジン間の回線劣化。④タイムアウト設定の不整合: プロキシのタイムアウトがオリジン処理時間より短い。
利用者側の対処は以下。第1段階: 数分待って再アクセス。第2段階: 同じ操作を避け、別ページから入り直す(重い処理を避けるため)。第3段階: ファイルアップロードなどの重い操作で発生した場合は、ファイルサイズを小さく分割して再実行。第4段階: 決済やフォーム送信で発生した場合、重複送信を防ぐため5〜10分待ってからマイページで完了確認後に再実行。第5段階: サービス公式Xで大規模障害か確認。
運営側の対策としては、プロキシのタイムアウトを十分に取る(Nginxの`proxy_read_timeout`を60〜300秒)、長時間処理は非同期ジョブに逃がす、進捗を返すストリーミング応答にする、などが有効です。
会員登録フォームで住所から年収まで入力して送信した瞬間、『504 Gateway Timeout』が出る場面は誤操作リスクが高い典型例です。裏側で登録処理が完了している可能性もあるため、すぐにF5連打は禁物。10分ほど待ってからログイン画面で試し、ログインできれば登録は成功しています。できなければ再登録、ただしメールアドレス重複エラーが出たら既に登録済みとわかります。
別の呼び方
Gateway Timeout
ゲートウェイタイムアウト
504エラー
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!