何が起きたのか?
502 は「中継役のサーバーが、その先にいる本体サーバーから返ってきた答えを理解できなかった」というサインです。 教室で例えるなら、廊下に立つ伝令係が、隣の教室の先生に質問を持ち込んだら「もごもご……」と意味の通らない返事しか戻ってこなかった、そんな状況です。
リバースプロキシ(nginx, ALB, CDNなど)が前面に立つ構成で起きやすく、原因は「中継役」ではなく「奥にいる本体」にあることがほとんどです。
黒板からのひとこと
授業中、先生が誰かにメモを取りに行かせたとして、戻ってきたメモが破れていたら、教室全員に「読めなかった」と伝えるしかありません。これが 502 です。
伝令係を責めても何も解決しません。奥の教室で何が起きているか、誰がそこに居るか、紙が破れていないか——順に確認していきます。
解決への歩み
大丈夫、次はこうしてみよう:
- 時間を置いて再アクセス:上流サーバーの再起動などで一時的に発生していることがある
- 別の機能・ページを確認:特定のエンドポイントだけ502か、サイト全体かを切り分ける
- 状況を管理者に伝える:時刻、URL、繰り返し再現するか
- 上流アプリの稼働状況を確認(管理者向け):プロセス起動、ポート開放、ヘルスチェック、プロキシのerror_logを順に
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 502 Bad Gateway
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>502 Bad Gateway</h1></body></html>