LINEで個別相談
エラーコード辞典 2026-02-26

エラーコード: HTTP 504 Gateway Timeout とは

「504 エラー」が発生する原因と、Nginxやバックエンドのタイムアウト設定の見直し方。

HTTP 504 Gateway Timeout とは

間に立っているゲートウェイやプロキシサーバー(Nginxやロードバランサー)が、背後にいるアプリケーションサーバー(PHPやDBなど)からの応答を待ちきれず、タイムアウトして諦めた場合に発生するエラーです。

502 (Bad Gateway) との違い

  • 502: 後ろのサーバーそのものが死んでいる(通信できない)。
  • 504: 後ろのサーバーは生きているが、返事が遅すぎる。

よくある発生原因と対処法

  1. データベースのクエリが重すぎる 大量のデータを集計するSQLや、インデックスが張られていないテーブルへの検索で、数分間処理が返ってこないケースです。
    • 対処: スロークエリログを確認し、DBのインデックスチューニングを行うか、非同期処理(後からメールで結果を通知するなど)に変更します。
  2. 外部APIの応答遅延 自社サーバーから外部サービス(決済API等)を呼び出している際、外部サービスが重いと自社サーバーも待たされ、結果として504になります。
    • 対処: 外部API呼び出し時のタイムアウト設定を適切に短くチューニングし、エラーハンドリングを行います。
  3. プロキシのタイムアウト設定が短すぎる Nginx等のデフォルトタイムアウト(例: 60秒)よりかかる正常な重い処理がある場合。
    • 対処: Nginxの proxy_read_timeout や fastcgi_read_timeout の値を一時的に引き上げます(※ただし根本解決にはなりません)。

Sponsored Link

バグ・要望を報告する