502エラー 【HTTP 502 Bad Gateway】

概要

502エラー(HTTP 502 Bad Gateway)とは、Webサーバで起きるエラーの種類の一つで、目的地のWebサーバが機能していないことを、経路途上にある中継サーバ(プロキシなど)が報告するもの。

WebサーバとWebブラウザなどのクライアントの間ではHTTPHypertext Transfer Protocol)という通信規約(プロトコル)でデータ伝送を行っている。クライアントからの要求(リクエスト)に対してサーバは応答(レスポンス)を返すが、その際に現在の状態を示すHTTPステータスコードを通知する。

ステータスコードの500番台はサーバ側で生じたエラーを表しており、502番のエラーメッセージは “Bad Gateway” (無効なゲートウェイ)である。クライアントと目的のサーバの間にあるプロキシなどの中継機器が返すエラーで、目的のサーバが正しく応答しないことを表す。

例えば、サーバ側でロードバランサやリバースプロキシキャッシュサーバコンテンツデリバリネットワーク(CDN)などを介して外部からの接続を受け付ける構成になっているとき、サーバが停止して応答しないことをサーバに代わって中継機器がクライアントに通知する場合に返される。サーバ自身は中継機器に何らかのエラーを返している場合に用いられ、完全に沈黙して応答しない場合は504エラー504 Gateway Timeout)が用いられる。

502エラーは経路途上のゲートウェイ(プロキシなど)が「目的のサーバに接続できなかった」ことのみを報告するもので、原因がゲートウェイ側なのかサーバ側なのか、サーバがどのような応答を返したのか、サーバに問題が発生しているのか等については分からない。サーバは正常なのにゲートウェイの接続設定が誤っていてサーバと通信できない場合でも502エラーが返される。

(2022.11.12更新)

HTTPステータスコード一覧

*1 302はHTTP/1.0では「Moved Temporarily」だった。
*2 413はHTTP/1.1では「Request Entity Too Long」、RFC 7231では「Payload Too Long」だった。
*3 414はHTTP/1.1では「Request-URI Too Long」だった。
*4 416はHTTP/1.1では「Requested Range Not Satisfiable」だった。
*5 418は1998年エイプリルフールのジョークRFC 2324で「I'm a teapot」として定義されていた。