504 Gateway Timeoutは、ゲートウェイまたはプロキシとして動作するサーバーが、上流サーバーからタイムリーな応答を受信しなかったことを示すHTTPステータスコードです。
以下は、504 Gateway Timeout HTTPステータスコードが返される具体的な理由です:
- プロキシまたはロードバランサーとして動作するゲートウェイサーバーが、完全な応答を待っている間に、割り当てられた閾値時間内に上流のアプリケーションサーバーまたはマイクロサービスから応答を取得できない。
- ゲートウェイの背後に過負荷のアプリケーションサーバーがあり、その動作が遅すぎて、ゲートウェイが設定した応答タイムアウト時間内に、クライアントを起点とするリクエストに対する応答を完全に構築できない。
- バックエンドアプリケーションがレスポンスの構築に依存しているDNS、データベース、またはその他の外部サービスの動作が遅すぎるため、ゲートウェイが必要とする重要なデータを提供できない。
- ゲートウェイとアプリケーション・サーバーの間にあるWAFや認証レイヤーのようなセキュリティ・サービスは、リクエストとレスポンスを処理している間、タイムアウトのしきい値を超える追加の待ち時間を発生させる。
- 分離されたゲートウェイとアプリケーションサーバー層間のネットワーク接続は、パケットロス、高いジッター、またはタイムアウト以下の伝送パフォーマンスを低下させる接続性の問題に見舞われる。
- アプリケーションは正しく機能しているが、中間ゲートウェイに設定されたタイムアウトが通常の動作パターンに対して強すぎる。
要約すると、504のエラーは、ゲートウェイの背後にあるシステムの応答時間が不十分で、アプリケーションの動作を許容時間内に完全にプロキシングできないことに起因する。