意味
ユーザー(またはクローラー)はゲートウェイと通信し、ゲートウェイがオリジンと通信します。502は、この2番目の区間で失敗したことを意味します。オリジンがクラッシュした、タイムアウトした、接続を切った、不正な内容を返したなどです。ゲートウェイ自体は通常、正常です。
よくある原因
- オリジンのプロセスが、リクエストの処理中にクラッシュまたは終了する(デプロイのバグ、PHPやPythonの致命的エラー)。
- 負荷がかかったオリジンがタイムアウトし、アプリケーションが処理を終える前にゲートウェイが諦める。
- データベースの接続プール、ワーカー、メモリなどのリソースが枯渇する。
- デプロイ後の設定の不一致(ポート、プロトコル、上流の名前の誤り)。
SEOで重要な理由
検索クローラーが502を受け取ると、そのURLを一時的に利用できないものとして扱い、後で再試行します。502が続くと、500と同様にインデックスから削除されます。502はアクセスのピークやデプロイの前後にまとまって出ることが多いため、1回のクロールよりも、レスポンスコードを時間の経過に沿って監視することが重要です。
ログで502の発生頻度を、デプロイの時刻やトラフィックの推移と照らし合わせます。相関から原因が分かることが多くあります。
FAQ
502は、クライアント側の問題ですか?
いいえ。ブラウザーやクローラー側で変更できることはなく、直りません。障害は、ゲートウェイとオリジンサーバーの間で起きています。
502と503、504は、どう見分けますか?
502は、オリジンが無効なレスポンスを返したことを示します。503は、サーバー自身が利用できないと宣言している状態です(多くはRetry-Afterを伴います)。504は、オリジンが時間内にまったく応答しなかったことを示します。