Slate Errors

Server Error

502

Bad Gateway

— ゲートウェイから不正な応答

まずは確認: よくある原因 TOP3

  1. 上流アプリケーションサーバーが起動していない/落ちている
    アプリプロセスの稼働状況とポートを確認
  2. 上流サーバーが想定外の応答(壊れたヘッダ等)を返した
    nginxのerror_logやアプリのアクセスログで詳細確認
  3. タイムアウトや接続切断
    keepalive、タイムアウト設定を見直す

何が起きたのか?

502 は「中継役のサーバーが、その先にいる本体サーバーから返ってきた答えを理解できなかった」というサインです。 教室で例えるなら、廊下に立つ伝令係が、隣の教室の先生に質問を持ち込んだら「もごもご……」と意味の通らない返事しか戻ってこなかった、そんな状況です。

リバースプロキシ(nginx, ALB, CDNなど)が前面に立つ構成で起きやすく、原因は「中継役」ではなく「奥にいる本体」にあることがほとんどです。

黒板からのひとこと

授業中、先生が誰かにメモを取りに行かせたとして、戻ってきたメモが破れていたら、教室全員に「読めなかった」と伝えるしかありません。これが 502 です。

伝令係を責めても何も解決しません。奥の教室で何が起きているか、誰がそこに居るか、紙が破れていないか——順に確認していきます。

解決への歩み

大丈夫、次はこうしてみよう:

  1. 時間を置いて再アクセス:上流サーバーの再起動などで一時的に発生していることがある
  2. 別の機能・ページを確認:特定のエンドポイントだけ502か、サイト全体かを切り分ける
  3. 状況を管理者に伝える:時刻、URL、繰り返し再現するか
  4. 上流アプリの稼働状況を確認(管理者向け):プロセス起動、ポート開放、ヘルスチェック、プロキシの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>

似ているケース

もっと知りたい