「502 Bad Gateway」とは?意味・原因・回避・解決法

スマホやPCなどのブラウザでWebサイトを閲覧中に、「502 Bad Gateway」(以下502エラーと呼びます)というメッセージが表示されてページが閲覧できないことがあります。ユーザー側の問題ではなく、サーバーの障害やプログラムのバグ(不具合)などサービス提供側での問題が考えられるこのエラーですが、そもそも「502」、「Bad Gateway」とは何を意味しているのでしょうか。

「502 Bad Gateway」エラーの原因は様々であり、それによって対処方法も異なります。特にサイト管理者にとっては原因の特定に頭を悩ませるエラーであるため、問題を切り分けて考えて行きます。

「502 Bad Gateway」とは

Google 502エラーページ

「502 Bad Gateway」とは、サーバー側のエラーです。サーバー側での何らかのトラブルによりコンテンツに一時的にアクセスができないことを示します。
ユーザーがWebサイトを閲覧する時、ブラウザを通じてWebサイトのファイルが置かれているサーバーにアクセスし、「ページを表示させて欲しい」「画像や動画を見せて欲しい」といったリクエストを送ります。サーバーはそのリクエストに応えて該当する情報を後述するステータスコードと共にブラウザに返します。
この間、通信に問題があってリクエストに応えられず、タイムアウトになってしまった状態を「502 Bad Gateway」と呼んでいます。

502エラー

「502エラー」はサーバーにアクセスしようとした時に発生するサーバー側の問題で、基本的にユーザー側では解決することができません。「404エラー」のような、ユーザー側で対処が可能なこともあるクライアントエラーとは対応が異なります。
一時的なアクセス集中が原因の場合は時間が経てば解決する可能性がありますが、そうでない場合はサーバー側での問題を解消してもらうまで、エラーメッセージが表示され続けることとなります。
実際に、エラーに遭遇した場合はサイト管理者に連絡するなどして対応を待つ必要があります。

ステータスコード

ステータスコードとはWebサーバーからのレスポンス(返答)の意味を示す数字3桁のコードです。ブラウザでWebサイトにアクセスすると、ユーザーからサーバー側にリクエストが送られ、サーバーがブラウザにステータスコードを返します。
通常であれば表に出ないのでユーザーが意識することがありませんが、Webサーバーへのアクセスが失敗しているような場合はステータスコードを調べることでどのような処理が行われていたかの確認ができます。

ステータスコードの500番台は主にサーバーエラーを意味しており、さらに意味が異なるコード(500、501、502:不正なゲートウェイ、503、…)に分類されています。※正確な名称はHTTPレスポンスステータスコードと呼びます。

ステータスコードは以下の記事でも解説しています。

Bad Gateway(バッドゲートウェイ)の意味

bad gateway
「Bad Gateway(バッドゲートウェイ)」の意味は、直訳すれば「不正なゲートウェイ」であり、ネットワークの中継地点で問題が起こっているということを表しています。

「不正なゲートウェイ」とは?

「不正なゲートウェイ」とは、ゲートウェイもしくはプロキシサーバーが不正なリクエストを受け取り、通信エラーが発生していることです。

・ゲートウェイ:プロトコルの異なるネットワーク同士を接続して中継するためのネットワーク機器(またはソフトウェア)のことで、一般的にはユーザーとインターネットをつなぐルーターと同義。

・プロキシエラー:インターネットとWebサーバーを中継しているプロキシサーバーにエラーが発生していること。

どちらの場合も、ネットワークの中継地点で不正なリクエストの受け取りがあり、エラーが発生していることを表します。

「502 Bad Gateway」のパターン

「502 Bad Gateway」のパターンとして、以下の二種類のエラーメッセージがあり、厳密に意味は異なります。

・502 proxy Error
502 proxy Error
→プロキシサーバーが上流サーバーから無効なリクエストを受信したというエラーメッセージで、コンテンツのあるサーバーが停止している可能性があります。

・http 502 - unable to connect to the origin server
http 502 - unable to connect to the origin server
→オリジンサーバー(ホスティング会社)に接続できないというエラーメッセージで、セキュリティ証明書に関する問題、SSL/TLSプロトコルをサポートしていない、ポートの設定ミスなどが考えられます。

「502 Bad Gateway」の原因

「502 Bad Gateway」の原因として、以下が挙げられます。

・アクセス集中によるエラー
→よく見られる原因が、サーバーへのアクセスが一時的に集中し処理しきれなくなったことによるエラーです。
・DNS変更によるエラー
→Webサイトを構成するファイル等が置かれているサーバーを変更(引越)した場合や、サイトのIPアドレスを変更した場合、DNS変更が完全に反映されるまでエラーページが表示されることがあります。
・ファイアウォール設定によるエラー
→Webサイトを悪意のある訪問者や攻撃から守るのがファイアウォールの役目ですが、設定に問題がある場合、正常なアクセスを攻撃とみなしてエラーページが表示されてしまうことがあります。
・ソースコードのエラー
→Webサイトのソースコードに記述ミスなどの問題がある場合、サーバーは不正な応答を受け取ったことでエラーとなります。
・キャッシュに関するエラー
→ブラウザの古いキャッシュや無効なCookie情報により、アクセスしているWebサイトから最新の情報が取得できずにエラーとなることがあります。

他にも、以下のようなサーバー環境によっていくつかの原因が考えられます。

nginxで502エラーが表示される場合

nginx 502エラー

「nginx(エンジンエックス)」とはWebサーバーの一つであり、処理が比較的早いことからWordPress運用者にも人気のサーバーです。nginxで502エラーが表示される場合、nginxからアップストリーム(HTTPリクエストを外部で処理する場合の転送先)へ接続できないことでエラーとなります。主な原因はサーバーの設定ミス、アクセス集中、ソフトウェアのバグが挙げられます。

Cloudflareで502エラーが表示される場合

Cloudflare 502エラー

「Cloudflare(クラウドフレア)」とは負荷分散サービスのことで、コンテンツを複数サーバーにキャッシュしてWebサーバーのレスポンスを改善するサービスです。Cloudfareで502エラーが表示されるのは一般的な502エラーの場合と、「504 gateway timeout」エラーの場合が考えられます。タイムアウトはオリジンサーバー側で発生しています。
なお、サービスが停止しているかどうかはCloudflareのステータスページにて確認することができます。
https://www.cloudflarestatus.com/

WordPressで502エラーが表示される場合

ブログでもおなじみ「WordPress」での502エラーは、一般的な502エラーとは異なりWordPressの元になっているPHPの記述ミスなどで起こることが多いです。中でも”functions.php”の記述ミスはよくありがちなエラーと言えます。
また、サードパーティ製のプラグインやテーマが悪影響を及ぼしている場合、PHPのバージョンによっても同様にエラーとなる可能性があります。WordPressコア(本体)やプラグインのアップデート時はエラーが発生しやすいため、事前にバックアップを取っておくことをお勧めします。

502エラーの多発はSEOに悪影響?【管理者向け】

502エラーの多発はSEOに悪影響を与える可能性があります。一時的な502エラーが原因であれば、検索順位に直ちに影響があるとまでは言えませんが、502エラー状態が長引くようだと、Googleのクローラー(Web巡回用のボット)はユーザーのためにそのコンテンツを検索順位から外す可能性があります。
従って、502エラーのようなサーバーエラーは出来る限り早めに対処すべきと言えるでしょう。

「502 Bad Gateway」の回避・解決

「502 Bad Gateway」の回避・解決について、ユーザー側、サイト管理者側それぞれの場合に分けて説明します。「502 Bad Gateway」に関する問題はユーザー側での根本解決が見込めないため、主にサイト管理者側での対処が必要となります。

<ユーザーの場合>
・ブラウザをリロード(更新)する
→アクセスした時にたまたまエラーが発生していただけであれば、まずブラウザをリロードして解消できるか確認してみて下さい。
・時間を置いてからアクセスする
→上記のブラウザリロードで解消できない場合は、しばらく時間を置いて再度アクセスすることで解消できる場合があります。
・サイト管理者に連絡する
→サイトに問い合わせ先が記載されている場合、状況を伝えることで解決に繋がる可能性はあります。

<サイト管理者の場合>
・サーバーの再起動
→一時的なアクセス集中であれば、アクセスが分散されることで自然に解消することが多いですが、サーバーの再起動によっても復旧させることが可能です。
・PHPの再起動
→サーバーの再起動ができない場合は、PHPの再起動・再設定で改善する可能性があります。
・サーバー構成やプランの変更
→慢性的にアクセス集中がある場合は、そもそもサーバーのスペックが不足していることが原因なので、恒久対策としてサーバー構成の見直しやプランの変更をお勧めします。
・PHPやCGIなどのコード確認
→PHPやCGIなどのプログラムのソースコードに記述ミスなどがないか、コードをチェックして下さい。
・エラーログの確認

WordPressログファイル 場所

WordPressログファイルの場所

→WordPressのエラーログを確認して原因を特定します。ログはサーバーの”/wp-content”または”/logs”ディレクトリに置かれます。また、Apacheやnginxのログもそれぞれ以下のパスで確認可能です。
Apache: /var/log/apache2/error.log
nginx: /var/log/nginx/error.log
もしログがない場合はホスティング会社に確認して下さい。

・ファイアウォールの無効化
→ファイアウォールの設定に問題があるか確認し、必要に応じて修正や無効化を試してみましょう。
・DNSの変更を確認
→サーバーを変更したりWebサイトを別IPアドレスに変更した場合、DNSサーバー情報が変更されます。DNSの変更が完全に反映されるまでは502エラーが表示される可能性があるため、時間をおいてアクセスしてもらうことをユーザーにアナウンスして下さい。
・設定やプラグインのON/OFF
→サイトやサーバーに更新があったり、設定変更をしていないか確認します。またプラグインを元に戻して原因を調査する必要があるため、普段からこまめに設定ファイルやプラグインのバックアップをとっておきましょう。
・ホスティング会社へ連絡
→原因が特定できない場合は下手にいじってより困難な状況に陥るよりも、ホスティング会社に連絡して指示を仰ぎましょう。

まとめ

「502 Bad Gateway」について、様々な原因と対処方法を説明しました。ユーザー側で出来ることは限られているため、サイト管理者はエラーとなる原因を確認して出来るだけ早めに復旧させることがSEOにとっても重要となります。アクセスの増加が見込まれる場合はサーバーを増強する、サーバー監視ツールを導入するなど、エラーに対処できるよう準備をしておくことが必要です。また、サイトの構成を変更する際にはメンテナンス情報の予告をしておくと、ユーザーにとっても親切な対応と言えるでしょう。