「502 Bad Gateway nginx」エラーでページが見れない!原因と解決方法

Webサイトを閲覧していると「502 Bad Gateway」というエラーが発生してページが表示されないことがあります。このエラーが発生するとWebページが閲覧できないため、速やかに対処する必要があります。

今回は、「502 Bad Gateway」エラーが発生した場合の対処法を訪問側、運営側でそれぞれ紹介します。ぜひ参考にしてください。

502エラーの意味とは

エラーが内容は、上段に「502 Bad Gateway」、下段に「nginx/x.x.x」のように表示されます。

502 Bad Gateway nginxのエラーは、Webサイトへのアクセスでエラーが発生した際に表示されるWebサーバーソフトウェア(nginx)のHTTPステータスコードです。

502エラーは、ゲートウェイもしくはプロキシサーバー、アップストリームの間で通信エラーが発生していることを意味します。

502エラーが出る原因

502エラーが発生する主な原因は以下の通りです。主にサーバー側に問題が発生していることがほとんどです。

  • サーバープログラムのバグや設定ミス
  • ネットワークのルーティングに問題がある
  • Webサーバと連携しているアプリケーションサーバにバグがある
  • ファイアーウォールが通信をブロックしている
  • アクセスの過負担によるタイムアウト

502エラーが出てしまった場合の対処法を訪問側と運営側でそれぞれ紹介しますので、参考にしてみて下さい。

訪問側の対処方法

502エラーが発生する場合、Webサービスの提供元や通信経路上にあるサーバに障害やバグなどが発生していることが考えられます。

そのため、訪問者側で行える対処法はほとんどありません。念のため次に紹介する対処法を一度試してみてください。

対法1: ページを再読み込みする

サーバーに一時的な負担が掛かっている場合、ページを再読み込みすることで、正常に表示される可能性があります。

ブラウザのアドレスバーの横にある「更新ボタン(くるくるマーク)」を押してページをリロードしてみましょう。

PCでChromeを使っている場合は、ショートカットキーによるスーパーリロードも試して下さい。

  • Windowsの場合…「Shift」 + 「F5」
  • Macの場合…「Command」 + 「Shift」 + 「R」

対法2: ブラウザのキャッシュをクリアする

突然502エラーが表示された場合、ブラウザのキャッシュをクリアしてからもう一度アクセスしてみてください。場合によってはこれで正常に表示されるようになることがあります。

主要なブラウザのキャッシュクリアの手順は以下のサイトを確認してください。

対処3: 別の経路でサイトにアクセスしてみる

502エラーが発生しているサイトに別のネットワーク経路でアクセスすると、表示されるケースがあります。

PC、スマホでそれぞれサイトにアクセスして正常に表示されないか確認します。スマホでアクセスする際は、Wi-Fiをオフにしてモバイル回線でアクセスするようにしましょう。

両方のネットワーク経路でエラーが発生した場合は、アクセス先のWebサーバーのトラブルだと分かります。

対処4: Webサイトの運営者に連絡する

上記の対処法を試しても502エラーが直らない場合、ユーザー側で行える対処法は他にありません。

したがって、当該Webサイトの運営者に連絡して修正してもらいましょう。連絡したらあとは修正を待つだけです。

運営側の対処方法

502エラーが発生した場合、運営側に問題があることが多いので以下の対処法を順番にチェックし、原因を切り分けて対処してください。

対処1: サーバー/PHPを再起動する

502エラーはサーバを再起動で直る場合があります。VPSなど専用サーバーを利用している場合は、サーバーの再起動を試してみて下さい。

通常のレンタルサーバーの場合は、サーバーの再起動はできません。代わりにコントロールパネルからPHPのバージョンを変更することでPHPを再起動します。

PHPのバージョン変更は、次の手順で行います。

  1. レンタルサーバーのコントロールパネルにログインします。
  2. 「PHPのバージョン設定」を開きます。
    • PHPのバージョン設定の項目の場所は、レンタルサーバーによって異なります。各サービスのマニュアルを参考にして下さい。
  3. PHPのバージョンを現在選択しているバージョン以外に変更します。
    • 同バージョンで「CGIモード」と「モジュールモード」がある場合は、モードの変更でOKです。
    • バージョンを変更する場合は、メジャーバージョン内(5.X同士、7.X同士)で行なって下さい。メジャーバージョンを跨ぐと、深刻なエラーが発生する場合があります。
  4. PHPの設定変更の反映を待ちます。(5〜10分程度)
  5. 変更ができたら再度PHPのバージョンを元に戻します。

以上の手順で、レンタルサーバーであってもPHPを再起動することができます。再起動後に502エラーが出るか確認して下さい。。

対処2: サーバの設定を見直す

サーバーの設定やサーバープログラムを変更してからエラーが発生するようになった場合は、直近の設定変更に問題があることが考えられます。

一度変更した設定項目を戻して502エラーが発生しないかどうかを試してみてください。エラーが出ずに正常に表示される場合は、設定変更に原因があると判断できます。

また、サーバーの仕様変更によってエラーが発生しているケースもあります。サーバーの提供会社の公式ページを確認して、仕様変更の情報がないか確認しましょう。

ファイアウォール機能も確認

サーバー側のファイアウォール機能によって、通信がブロックされ502エラーが発生するケースもあります。

ファイアウォールの機能が有効になっている場合は、一度無効化してエラーの発生を確認してみて下さい。

対処3: アプリケーションのバグを修正する

新たなアプリケーションを実装した場合や、既存のアプリケーションをアップデートしてから502エラーが発生するようになった場合は、アプリケーションのソースにバグがあることが考えられます。

変更したアプリケーションの箇所をチェックし、バグが有った場合は修正してください。

Git管理している場合は、とりあえず一旦元に戻してチェックする方法もあります。

対処4: 外部サービスを確認する

CDNサービスを利用している場合は、外部のWebサーバーが原因で502エラーが発生するケースがあります。

もし、このタイプのエラーが発生している場合はサーバのログにエラーが記録されていることが多いので、一度チェックしてみましょう。

エラーが発生していた場合は、CDNサービスを一旦無効にして502エラーが解消しないか確認してみて下さい。

対処5: サーバを増強する

ページの再読み込みや時間を空けることで502エラーが一時的に解消する場合は、アクセスの集中が原因で通信がタイムアウトしていることが考えられます。

サーバーの過負担を解消するには、サーバーの性能を増強する必要があります。サーバーの負担状態は、ほとんどのサーバーの場合コントロールパネルから確認できます。

最大アクセス数と、処理するために必要なスペックを計算した上でサーバープランの変更やサーバーの乗り換えを検討しましょう。

アクセス過多によるタイムアウトが原因の場合は、基本的にサーバを増強しないと直らないので注意してください。

コメントを残す

*