ウェブサイトを運営している中で特定のページで「502 Bad Gateway」といったエラーメッセージが表示されている場合があります。
502エラーページがあることで、ユーザが期待してわざわざ自分のウェブサイトに訪れたのに対して、502エラーが表示されることはウェブサイトの信用が落ちてしまい、サイトの価値が下がってしまいます。
502エラーがなぜ表示されるのかがわからない方のためにその原因と対策についてご説明しますが、結論から言うと、502エラーはクライアント側とサーバー側との通信に何かしらの問題が発生していることが原因です。本来であればHTTPステータスコードでは「200」番が返されることで、正常にウェブサイトの閲覧ができます。しかし、200番号ではなく、500番台は「失敗」を表しており、502エラーはゲートウェイ(玄関や入口)に問題があるということです。
そのため問題点は5つぐらい考えられるので、それぞれ確認していけば必ず解決できます。すぐに問題点を確認して「502 Bad Gateway」を即解決しましょう!!
502エラーとは?
502 Bad Gatewayエラーは、サーバーからのレスポンスコードでエラーが返ってきたため表示されているのですが、ゲートウェイ(データ通信の玄関)かプロキシサーバー(安全な通信や高速通信を行うための中継サーバ)が、大元のサーバー(私の場合であればレンタルサーバーであるエックスサーバーのこと)から無効なレスポンスを受け取っているといった意味になります。
既に502エラーについてお伝えしましたが、何もなければ「502 Bad Gateway」は表示されません。元々表示されていたページが、いきなり502エラーが表示されるようになったのであれば、確実に何かしらあなたが直近で行った変更が原因で問題が生じているため、変更箇所を探れば簡単に解決することが多いです。
502エラーの原因
「502 Bad Gateway」は先ほどもお伝えしたように、クライアント側(サイトを見ているユーザー側)と、サーバー側(ウェブサイトデータを提供するサーバー)との通信でのやりとり時に何かしらの原因があります。
そのため1つの原因というわけではないですが、順番に問題点を確認して潰していくことで、原因を特定することができます。そしてその原因に対する対策をすることで必ず502エラーは解決できるので、諦めずに順番に見ていきましょう。
ちなみに考えられる原因は以下の5つがあります。
- サーバーとの接続に何かしらの問題が発生している
- サイト側のコードにバグがある
- DNSに問題がある
- ファイアウォールの設定に問題がある
- その他に問題がある
基本的に上のNo.1〜4の問題を試せばほぼ解決することが多いのですが、それでも解決しない場合は、No.5のその他に問題があるため調査が多少難航するかもしれませんがログを見ることで解決することができるでしょう。
502エラーを解決する5つの方法
解決方法1:サーバー接続で問題がないかを確認
これが最も考えられる問題です。ウェブサイトはサーバー上のデータをクライアントがリクエストして、レスポンス(返ってきた情報)を表示されることで閲覧されています。
つまり502エラーはサーバー側での原因で起きやすい問題で、レンタルサーバーなどメンテナンスをしていてサーバーが停止している場合もあります。その際は、お使いのサーバーのステータスやお知らせを見ることでメンテナンス状況を把握することができます。もしメンテナンスだった場合はサーバー側の問題となるため、そちらのステータスの回復を待つしか方法はないです。
解決方法2:ウェブサイトのコードのバグ有無を確認
ウェブサイト自体に高度なバグがある場合で502エラーが表示されている可能性もあります。その場合はコードのバグを解消(デバッグ)すればいいだけなのですが、どこでコードのバグが発生しているかを特定する必要があります。もしあなた自身でコードを変えたのであれば変更点を見直してみればすぐに発見できると思います。もしウェブサイトを外注している場合は、外注先に言えばデバッグをしてくれるでしょう。
解決方法3:DNSを確認
DNSは、”Domain Name System”の略で、 インターネット上でドメイン名を管理して、IPアドレスとドメイン名の紐付けを行うシステムとなります。そのDNSの関係で502エラーが発生している可能性があります。
例えば、サーバーの移管を行ったりドメインの変更を行ったりすることでDNSサーバーに変更が生じるのですが、そのDNSの設定が完了するまでには時間がかかります。この場合はDNSの変更が完了すると502エラーは解消されるので、数時間待ってから再度確認を行ってみて下さい。
解決方法4:ファイアウォールの設定を確認
ファイアウォール(Firewall)とは、内部のネットワークと外部のネットワークとの間にあるセキュリティの壁となっており、不正なアクセスから守ってくれるものです。外部からの通信が安全なものかどうかを判断して、許可するのか、または拒否するのかという判断をしてくれます。
そのファイアウォール自体に設定に問題があった場合、あなたを含むユーザーがサーバーに出したリクエストをサーバーに対する攻撃と判断して拒否されていることも考えられます。
確認の方法は、ファイアウォールの設定をいちど無効化した上でサイトを確認してみてください。もしこれで502エラーが出ない場合はファイアウォールの設定が原因と考えられるので、設定を見直しましょう。
解決方法5:その他の原因を確認
まずあなたがウェブサイトを見たタイミングでサーバーに高負荷がかかっている可能性もあるので、1・2分おいてから再度リロードしてみると意外にも502エラーが出ない場合もあります。
その他には、ログを確認することも重要です。サーバーログの場合はサーバーの正常な稼働状況が分かったりもします。また、ワードプレスでプラグインを使っている場合などはプラグインが悪さをしている可能性もあるためログ(/wp-contentディレクトリにlogsがある)を確認することで原因が判明する場合もあります。
また上記の対応で問題が解決しているのにも関わらず、エラーが解消されない場合はキャッシュの問題もあるため、キャッシュクリアを行った上でサイトを閲覧してみて下さい。
最後の可能性としては、PHPのバージョンの問題もあります。古いバージョンのPHPを使っている場合はアップデートをすることで直ったりします。もしくはPHPのバージョンが新しいにもかかわらずエラーが解消されない場合は、PHPの再起動をしてみるといいと思います。
大きく5つの解決方法をお伝えしてきましたが無事直りましたでしょうか。すべての問題に対して解決方法をご説明しましたがこれでも治らない場合は原因の特定が難しいかと思います。数時間ほど経過した上で改めてエラーが表示されるか確認をしてみて下さい。
502エラー発生時の問題切り分け方法
502エラーが発生した際の原因についてご説明しましたが、問題を特定するには切り分けながら検証を進めて、原因の特定をする必要があります。
サービスを提供している側だけの問題なのか、もしくはそれ以外の問題かによっても対策を施せる範囲が異なってくるため、しっかりと原因を特定してきましょう。
例えば、「サービス利用者 or ウェブサイト閲覧者 → インターネット → ファイヤーウォール → ロードバランサー → ウェブサーバー」のような構成だった場合、アクセスログがどこまであるのかで問題の箇所を特定できるかもしれません。
ファイヤーウォールにアクセスログあり&ロードバランサーにはない場合、ファイヤーウォールが原因と特定。
ロードバランサーにアクセスログあり&ウェブサーバーにはない場合、ロードバランサーが原因と特定。
このようにアクセスログの存在のあり・なしによって判断できますので、是非アクセスログを分析してみてください。
502エラーとブラウザーの互換性
502エラーはブラウザーによっては、対応していない場合もあります。以下にまとめていますので、エラーが発生した際に使っているブラウザーには互換性があるかを確かめてみてください。
ブラウザー | PC |
---|---|
Chrome | ○ |
Safari | ○ |
Edge | 12 |
Firefox | ○ |
Internet Explorer | ○ |
Opera | ○ |
次はスマートフォンの場合のブラウザーとの互換性です。
ブラウザー | SP |
---|---|
Safari on iOS | ○ |
Chrome Android | ○ |
WebView Android | ○ |
Firefox for Android | ○ |
Opera Android | ○ |
HTTPステータスコード 500の種類
ステータスエラーコードの500番号には502 Bad Gatewayだけでなく、他にも種類がありますので、そちらをご紹介します。
番号 | エラー文の例 | エラーの原因 |
---|---|---|
500エラー | Internal Server Error | サーバー内部で何らかの問題が発生し、リクエストを実行できない場合に表示される |
501エラー | Not Implemented | サーバーがリクエストを満たすのに必要な機能に対応していない |
502エラー | Bad Gateway | ゲートウェイやプロキシサーバがアクセスしたときの拒否 |
503エラー | Service Temporarily Unavailable | ウェブサーバーは正常に稼働しているが、一時的にリクエストを処理できない |
504エラー | Gateway Timeout | サーバーからのレスポンスがないためリクエストタイムアウトした |
HTTPレスポンスエラーは500番台をお伝えしましたが、400番台もあったりするので番号によってエラーの特性を把握することができます。エラーが表示された際にはしっかりと調べることで原因が判明し対策を打つことができます。
502エラーはSEOに影響ある?
ウェブサイトを運営している以上、SEOの影響が非常に気になるかと思います。結論から言うと長期間502のエラーが表示されている場合はSEOに影響を与えます。しかし短時間の502エラーに関してはSEOに影響は与えないと思うので発見された場合はすぐに対応すれば問題ありません。
なぜなら502エラーのページに関しては、Googleのクローラーもページを巡回することができないため、Googleサーチコンソール上でもエラーとして表示されます。
そのためGoogleサーチコンソール上でエラーを発見してしっかり対応した上で再度クローラーのリクエストを出すことによって、正常のhttpステータスコードの「200番号」がレスポンスされるため、Googleサーチコンソール上の問題も解消されます。
SEOを気にしてウェブサイトを運用するのであれば、Googleサーチコンソールを週に1度確認しておくなど、定期的にサイトの診断をしておくことをオススメします。
502エラーのまとめ
エラーが発生した際の原因と解決方法5つについてご説明してきました。またHTTPリクエストのエラーの種類は1つだけでなく沢山あるため、500番号台の種類についてそれぞれ例文とエラーの原因をご説明しました。
またSEOを意識したウェブサイトを運用するためにもGoogleサーチコンソールを定期的に確認してエラーが長期的に発生しないようにしましょう。
コメント