2021年12月13日更新
nginxで「502 Bad Gateway」になる原因と回避方法を解説
nginxを使ったサイトでは頻繁に502 Bad Gatewayが発生するという声が多く上がっています。nginxで502 Bad Gateway起きやすい原因とはどのようなものなのでしょうか。この記事では、原因と回避方法について詳しく解説します。
目次
nginxで「502 Bad Gateway」になる原因と回避方法
nginxを使ってサイトを作成していると、502 Bad Gatewayのエラーコードが出てサイトに接続できないことがよくある。この記事では、nginxでの502 Bad Gatewayの原因と回避法とはどのようなものなのか見ていきましょう。
「502 Bad Gateway」エラーとは?
まずは502 Bad Gatewayのエラーの意味について解説します。
「502 Bad Gateway」エラーの意味
「Gateway」とは通信プロトコルが異なるネットワーク同士を接続するときに、つなげる役割を果たす役割のある機器やソフトウェアです。サイトを運営する上では、サイトのコンテンツを保存するサーバーを通信ネットワークに接続するときの入り口にあたります。
502 Bad Gatewayが表示されるということは、Gatewayが何らかの異常を検知して、接続を拒否したことを意味します。
502はエラーコード
サーバーへの接続エラーに関するエラーコードは502 Bad Gatewayの他にもあります。503や504のエラーコードが表示されることもあります。502のエラーコードが表示された場合は、ゲートウェイ・プロキシさサーバーが不正な要求を拒否したことを意味します。
エラーがでるとサイトに接続できない
502 Bad Gatewayのエラーが出ると、サーバーの入り口で接続が拒否されてしまうので、サイトに接続できない状態になります。
nginxで「502 Bad Gateway」になる原因
nginxで502 Bad Gatewayになる原因とはどのようなものなのか解説します。
サーバー側のプログラムのバグや設定の不具合
サーバーの設定をミスしたり、プログラムにバグが含まれていることが502 Bad Gatewayの原因になる可能性があります。
ネットワークに問題がある
ネットワークのルーティングに何らかの問題が発生したことが原因である可能性があります。
webサーバーと連携しているアプリケーションサーバーのエラー
nginxを使ったWebサーバーと連携しているアプリケーションサーバーにバグが発生したことが原因でnginxが502 Bad Gatewayとなることがあります。
ファイヤーウォールが邪魔をしている
ファイヤーウォールは悪意のある接続者の攻撃から守るための門番という重要な役割があります。しかし、設定を間違えると正常な接続も攻撃とみなして、502 Bad Gatewayエラーで接続を拒否してしまいます。
アクセス量に対してサーバーの性能/容量不足
今までの正常に動作していたのに、突然502 Bad Gatewayが発生したら、サーバー容量を超えるアクセスを受けて処理ができなくなってしまった可能性があります。
ソフトウェアのバグ
ソフトウェアに発生したバグが原因の場合があります。原因の特定には少し手間がかかりますが、特定できれば比較的対処は簡単です。
nginxで「502 Bad Gateway」エラーを回避する方法
nginxを使ったサイトで502 Bad Gatewayエラーでサイトへアクセスできない状態の回避法を、サイトにアクセスする側とサイトの運営側のそれぞれの回避法を解説します。
アクセスした側
- ページを再読み込みする
ページの読み込みボタンをクリックして、再読込してみましょう。
- ブラウザのキャッシュをクリアする
ブラウザのキャッシュをクリアしてサイド接続してみましょう。
- PCならスマホでスマホならPCでサイトにアクセスしてみる
- Webサイトの運営者に連絡する
サイトの運営側
nginxを使ったサイトで502 Bad Gatewayが起きる場合には、サイトの運営者側の対処が重要です。次の順番に対処をしていきましょう。
- サーバー/PHPを再起動する
サーバーの再起動でこのエラーが直ることがあります。レンタルサーバーの場合には再起動できないのでPHPのバージョンを変更してみましょう。変更方法はレンタルサーバーの運営者にお尋ねください。
- サーバの設定を見直す
サーバーの設定を変更後に502 Bad Gatewayのエラーが起こるようになったら、変更が原因だと考えられます。設定項目を元に戻してエラーが回避できるかどうかを確認しましょう。エラーが回避できたら、変更した設定やプログラムをよく確認します。
- ファイアウォール機能も確認
ファイアーウォールが原因だと考えられる場合には、一度ファイヤーウォールを無効化します。無効化してエラーが回避できるようなら、ファイヤーウォールの設定におかしいところがないか確認します。
- アプリケーションのバグを修正する
アプリケーションの追加やアップデートが原因の場合には、アプリケーションのソースにバグがある可能性があります。いったんアプリケーションを外して、エラーが回避されるか確認します。アプリケーションのプログラムを見直して、バグを修正しましょう。
- 外部サービスを確認する
外部のWebサーバーを利用している場合には、そのWebサーバーが原因の可能性があります。サーバーのログを確認してエラーの内容を把握し、修正しましょう
- サーバを増強する
アクセスの集中が502 Bad Gatewayの原因の場合には、サーバーを増強することで回避できます。