502 Bad Gatewayとは?エラーが起きる原因と予防策について解説
502 Bad Gatewayエラーとは、主にウェブサーバーと中継器の間で発生する通信エラーを示すHTTPステータスコードのことです。エラーの原因にはサーバーメンテナンス、サーバーへの高負荷、ファイアウォール設定の問題、DNS設定の誤りなどが挙げられます。これらのエラーが発生するとWEBページを閲覧できなくなり、SEOにも悪影響を及ぼす可能性があるため、エラーが起こった場合には迅速な対応が求められます。
![amano_portrait](https://www.switchitmaker2.com/wordpress/wp-content/uploads/2024/05/amano_portrait-150x150.webp)
502 Bad Gatewayとは
502 Bad Gatewayとはサーバー間の通信エラーを示すHTTPステータスコードのことです。通信エラーの原因はWEBサーバー本体であったり、中継器(PCとサーバーを中継する機器、ゲートウェイ)であったりしますが、多くの場合で中継器の1つであるプロキシサーバーが原因です。
プロキシサーバー:WEBサーバーとPC(ブラウザ)の間を中継し、リクエストとレスポンス(閲覧したい情報の要求と代理送信)をする役割があり、導入することでセキュリティが向上したり、ページ表示速度が改善したりします。
502 Bad Gatewayの仕様は次のようになっており、ゲートウェイまたはプロキシサーバーがリクエストに対するエラーがあり、応答できないことを意味しています。
6.6.3. 502 Bad Gateway
The 502 (Bad Gateway) status code indicates that the server, while acting as a gateway or proxy, received an invalid response from an inbound server it accessed while attempting to fulfill the request.
引用:Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
HTTPステータスコードとは
HTTPステータスコードとは、WEBブラウザがサーバーから受け取るステータス番号で、100番台から500番台の3桁の数値で表されます。細かい数値にも意味はありますが、サーバー管理者でない場合にはすべてを覚える必要はありません。
ステータスコード一覧
番号 | ステータス概要 | ステータスコードの例 |
100番台 | リクエストの処理中 | 100、101 |
200番台 | リクエスト成功 | 200、201、202、203、204、205 |
300番台 | リダイレクト | 300、301、302、303、305、306、307 |
400番台 | クライアントエラー | 400、402、403、404、405、406、408、409、410、411、413、414、415、417、426、429 |
500番台 | サーバーエラー | 500、501、502、503、504、505 |
上記のようにステータスコードでは3桁目の数値でステータスの概要を示していますが100番台は処理中、200番台はリクエストの成功を意味していますので目にする機会はほとんどありません。また、300番台は301リダイレクト(恒久的転送)や302リダイレクト(一時的転送)をサイト管理の際に使うことはありますが、これ以外の番号を目にすることはまずありません。
400番台と500番台はどちらもエラーを示すコードですが、番号によってエラーを特定することができることがあるため、サイト管理者やサーバー管理者であれば目にすることはあるかもしれません。
なお、500番台はサーバー側のエラーであり、ユーザー側では解決することができません。エラーが発生するということはページを閲覧できない状態にあるということですので、ユーザーが離脱することはもちろん、長期間同じ状態が続くことでSEO的なマイナス評価を受けることがあります。500番台のエラーを見かけた場合には、迅速にエラー要因を特定し、解消する必要があります。
500番台のHTTPステータスコード
500番台のHTTPステータスコードはサーバー側のエラー表示であり、番号ごとに次のような意味を持ちます。
番号 | 概要 | 詳細 |
500 | Internal Server Error | サーバーがリクエストを処理できない予期せぬ状況に遭遇した状態 |
501 | Not Implemented | サーバーがリクエストの処理に必要な 機能をサポートしていない状態 |
502 | Bad Gateway | 処理しようとしてアクセスしたサーバーから不正な応答を受け取った状態 |
503 | Service Unavailable | サーバーが一時的な過負荷やメンテナンスのためにリクエストを処理できない状態 |
504 | Gateway Timeout | 処理しようとサーバーにアクセスしたが規定時間内に応答がなかった状態 |
505 | HTTP Version Not Supported | サーバーがHTTPのバージョンをサポートしていないか、サポートを拒否している状態 |
上記のように500番台のHTTPステータスコードにも複数の意味がありますが、それぞれ意味が異なります。例えば、500 Internal Server ErrorではWordPressで構築しているサイトでphpの構文エラーがあった場合に出ることがあるように、WEBサーバーやアプリケーションサーバー側の不具合を意味しますが、502 Bad Gatewayでは中継サーバー側の不具合ですのでWEBサーバーそのものには不具合がないことがわかります。
また、WEBブラウザ上には次のようなエラーが表示されますので、502という番号を見て判断することができます。(表記方法はサーバーによって変わります)
- 502 Bad Gateway
- 502 bad gateway Cloudflare
- 502 Proxy Error
- 502 server error
- 502 Server Error: The server encountered a temporary error and could not complete your request
- 502 Service Temporarily Overloaded
- That’s an error
- Bad Gateway: The proxy server received an invalid response from an upstream server
- Error 502
- HTTP 502
- HTTP Error 502 – Bad Gateway
- Temporary Error (502)
SEOに影響するHTTPステータスコード
繰り返しになりますが、HTTPステータスコードはサーバー管理者でなければ詳細まで把握する必要はありません。一般的なサイト運営をしていれば、エラーはまず起こりませんのでエラーがあった際にサーバー管理者に確認するだけで問題はありません。しかし、サイト運営者、特にSEO担当者としては検索順位に影響する可能性があるという点で次のHTTPステータスコードと意味は把握しておいてください。
- 301 Moved Permanently:ページに恒久的なリダイレクトを設定した状態。サイトリニューアルやURL変更時には設定が必須。
- 302 Found:ページに一時的なリダイレクトを設定した状態。シーズン限定のページの公開・非公開を管理するときのように一時的に転送をする場合に利用します。
- 403 Forbidden:アクセスページに閲覧権限が与えられていない状態
- 404 Not Found:アクセスしたページが存在しない、またはサーバーやDNSの不具合などで閲覧できない状態
- 429 too many requests:サーバーに負荷がかかりすぎている状態
- 500 Internal Server Error:サーバーの内部にエラーが発生している状態
- 502 Bad Gateway:中継サーバーにエラーが起きている状態
- 503 Service Unavailable:一時的にサーバーにアクセスできない状態
301リダイレクトと302リダイレクトは自身で設定するものですので、意図せずに発生することはありませんが、特にサイトリニューアル時に設定を怠ることでサイト評価に甚大な被害を被る危険性がありますので必ず実施してください。
400番台と500番台のエラーの原因はさまざまですが、サイトに閲覧できないページが存在するという点では同じです。一時的にエラーが出ることはサイト運営を長くしていればあり得ますが、長期間Google botがクロールできない状態が続くということは検索順位に悪影響を及ぼす可能性があります。特に、500番台と429のエラーはGoogleクローラーの頻度を下げることにつながるため、SEOを意識した場合に500番台のエラーが生じた場合には急ぎ対処する必要があります。(429エラーはサーバーに高負荷がかかっている状態ですので、サーバー変更も視野に入れた対処が必要です)
5xx および 429 サーバーエラーは、Google のクローラに対して一時的にクロールのペースを落とすように促します。すでにインデックスに登録されている URL はインデックスに保持されますが、最終的には削除されます。
引用:HTTP ステータス コード、ネットワーク エラーおよび DNS エラーが Google 検索に及ぼす影響(Google検索セントラル)
502 Bad Gatewayの原因
502 Bad Gatewayが起きる要因は大きく次の4つに分類できます。HTMLやCSSのようなコンテンツの書き換え程度では502エラーが出ることはありませんので、以下の状態を確認し、それでもエラーが続く場合には直近の改修を疑ってみてください。
- サーバーメンテナンス
- サーバーへの高負荷
- サーバーセキュリティの設定
- DNSの設定
サーバーメンテナンス
WEBサイトは基本的に複数のサーバーと接続されていますので、メンテナンスを理由にサーバーが停止している場合にはメンテナンスが終了するまで待つしかありません。ただし、レンタルサーバーが無断でメンテナンスに入ることはまず考えられません。接続が切れる時間は短時間で終わるか、そもそもが接続が切れないような対処法をすることが通常です。
サーバーへの高負荷
一時的にアクセスが集中するというような高負荷がサーバーにかかることで502 Bad Gatewayが起きることがあります。一時的なアクセスの集中であれば時間経過で解消しますが、日常的に高負荷がかかるようであれば、そもそものサーバースペックが足りていない可能性もあります。また、CMSの動作によってはサーバーに非常に高い負荷をかけてしまうことがありますので、サイトの仕様そのものを見直す必要も出てきます。
サーバーセキュリティの設定
サーバーのセキュリティであるファイアウォールの設定不良も502 Bad Gatewayの原因になります。しかし、ファイアウォールはサイバー攻撃や不正アクセスを防ぐために設置は必須ですのでファイアウォールを停止するのではなく、有効にしたうえでどのような設定があるのかはサーバー管理者やレンタルサーバー会社ごとに確認してください。
DNSの設定
DNSとはドメインとIPアドレスを紐づけるための仕組みのことです。設定を誤るとサイトが正しく表示されません。ただし、一度設定した内容が勝手に変更されることはまず考えられませんので、一度正しく表示されたことがある場合には別の要因を探ってください。
502 Bad Gatewayの予防策
502 Bad Gatewayはどちらかといえば突然起きるエラーですので明確な予防手段や解決策はありません。しかし、次のような手法を取ることでエラーが起きづらいサイトにすることは可能です。
- ログの管理
- サーバースペックの見直し
- コードの見直し
- サーバーのアップデートの確認
- コンテンツの圧縮
ログの管理
サーバーログにはサーバーのステータスに関する情報が記録されます。サーバーにエラーが生じた場合にはログを確認し、ステータスコードから原因の特定をすることができます。
サーバーのスペックの見直し
当初は共有サーバーで問題ないような小規模サイトであってもアクセスの増加によりサーバーへの負荷が大きくなることがあります。サイトの成長とともにサーバースペックを見直すことでサーバーエラーを防ぐことができます。特に共有サーバー(通常のレンタルサーバー)では他社のサーバーの負荷により自社サイトも重たくなってしまうということが起こりえますので、サイト規模が大きくなっている場合には専用サーバーへの移転を検討してください。
コードの見直し
WEBサイトを編集することは頻繁にありますが、HTMLやCSSではなくphpやMySQLのようにサーバーに関わるプログラムを編集する際には注意が必要です。コードの書き換えによって動作がおかしくなったり、想定していない動きをする可能性がありますので、可能であればテスト環境を用意し、本番化する前に動作確認するようにしてください。事前に動作確認することが難しい場合でも、公開後に想定とおりに動作するかを目視確認するだけでもサーバーエラーのほとんどは防ぐことができます。
コンテンツを圧縮する
サーバーの負荷を減らすという意味ではコンテンツを圧縮することで問題が解消することがあります。コンテンツの圧縮はページ表示速度の向上が見込めるためユーザビリティの観点でも対応すべきことです。画像圧縮ではWEBツールであるTinyPNGが有名ですが、WordPressを使ってるのであればEWWW image Optimizeのようなプラグインを導入することで簡単に圧縮することができます。
サーバーのアップデートの確認
レンタルサーバーを利用している場合、定期的にサーバーのアップデートやメンテナンスが起きます。メンテナンス
レンタルサーバーを利用している場合、サーバー会社が定期的にアップデートやメンテナンスを行います。通常はサーバーの利用停止になることはありませんが、アップデートの内容次第では一時的にサーバーが動かないことはあり得ます。そのような場合であっても夜間やアクセスの少ない時間帯に行うものですが、時間指定で自動公開設定しているような場合のようにメンテナンスと指定した内容の時間帯が被る可能性は考えられます。想定外の動きにならないようにするためにも公式からの発信情報を確認する必要があります。
まとめ
![amano_portrait](https://www.switchitmaker2.com/wordpress/wp-content/uploads/2024/05/amano_portrait-150x150.webp)