WordPressで502 Bad Gatewayが表示された場合、WordPressの画面だけを調べても原因が見つからないことがあります。502は、ゲートウェイやプロキシとして動くサーバーが、上流から有効な応答を受け取れなかったときのHTTPステータスです。
CDN、WAF、Webサーバー、PHP-FPMなど複数層のどこで応答が途切れたかを切り分けます。ほかのHTTPコードとの違いはWordPressのHTTPエラー一覧を参照してください。
WordPressの502 Bad Gatewayとは
502は、ゲートウェイまたはプロキシとして動作するサーバーが、リクエストを完了するために接続した上流サーバーから有効な応答を受け取れなかった状態です。
WordPressサイトでは、たとえば「ブラウザー → CDN/WAF → Webサーバー → PHP-FPM → WordPress」という経路の途中で問題が起きることがあります。どの構成でも同じとは限らないため、ホスティングの構成を確認しながら調査します。
最初に一時的な502か継続する502か確認する
数秒から数分で直る502と、特定の操作をすると毎回再現する502では原因候補が違います。
まず対象URLを再読み込みし、別ページ、管理画面、別回線でも同じか確認します。同時にホスティングやCDNの障害情報を見ます。
一時的に直った場合も、繰り返すなら発生時刻を記録してください。ログと照合しないと、再発時に原因を追えません。
CDN・WAF・リバースプロキシを切り分ける
CDNやWAFを経由している場合、エッジ側が502を返しているのか、オリジンサーバーから502が返っているのかを分けます。
サービス側の障害情報、オリジン接続エラー、TLS、タイムアウト、WAFログを確認します。オリジンへ直接接続できる構成でも、セキュリティを外したURLを公開するようなテストは避け、ホスティングの正式な確認方法を使います。
「CDNを止めれば直るか」を試す場合も、DNSやSSLに影響するサービスがあります。変更前の設定を記録し、短時間の検証に限定します。
PHP・上流サーバーの処理を確認する
NginxなどのWebサーバーからPHP-FPMへ処理を渡す構成では、PHPプロセスが停止している、応答が壊れている、接続できないといった状態が502につながることがあります。
WordPress側では、直前にPHPバージョンを変えていないか、Fatal errorが出ていないかを確認します。PHPの互換性と更新についてはWordPressのPHPバージョン確認・更新を参照してください。
共有サーバーではPHP-FPM自体を操作できないことも多いため、ログにupstream関連のエラーがある場合はホスティングへ問い合わせます。
サーバー負荷・リソース不足を確認する
CPU、メモリ、プロセス数、同時接続、ディスクI/Oなどが上限へ達すると、上流処理が正常に応答できず502になる場合があります。
アクセス急増だけでなく、バックアップ、画像処理、Cron、重い検索、外部API待ちなど一時的な処理負荷も確認します。負荷グラフが使えるホスティングなら、502の発生時刻と重ねます。
プラン変更だけで解決しようとせず、「どの処理が負荷を作ったか」を確認することが再発防止につながります。
プラグイン・テーマ・カスタムコードを確認する
WordPressのプラグインやテーマが直接502コードを定義しているとは限りませんが、重いPHP処理、無限ループ、外部通信待ちなどが上流サーバーの異常につながることはあります。
特定の管理操作やページだけで502が再現するなら、そのページで動くプラグイン・テーマ・カスタムコードを候補にします。直前に変更したものから検証環境で切り分けます。
継続的な監視や更新体制はWordPressの保守・運用も参考にしてください。
502と500・503・504の違い
| コード | 意味の中心 | 切り分けの重点 |
|---|---|---|
| 500 | サーバーが予期しない状態で処理できない | アプリ・PHP・設定・ログ |
| 502 | gateway/proxyが上流から有効な応答を得られない | プロキシ、上流サーバー、PHP-FPM |
| 503 | 一時的な過負荷・メンテナンスなどで処理できない | 負荷、メンテナンス、サービス状態 |
| 504 | gateway/proxyが上流から時間内に応答を得られない | タイムアウト、遅い上流処理 |
502は「無効な応答」、504は「必要な応答を時間内に得られない」という違いがあります。実際のサーバー実装によって表示メッセージは異なるため、ログとステータスコードで判断します。
500の詳しい切り分けは500 Internal Server Errorの対処、503は503 Service Unavailableの対処へ分けます。
エラーログとホスティングへ伝える情報
502は複数サーバー間の問題になりやすいため、問い合わせ時の情報が重要です。
- 正確なURL
- 502が出た日時
- 毎回か一時的か
- 特定ページだけかサイト全体か
- CDN・WAFの利用有無
- PHPバージョン
- 直前に更新したプラグイン・テーマ
- WebサーバーやPHPのログ
- 負荷グラフの該当時刻
ホスティング側でしか見られないupstreamログがある場合、この情報から調査してもらえます。
よくある質問
ブラウザー側の一時表示で再読み込み後に直ることはありますが、502の本質はgateway/proxyと上流サーバー間の応答です。繰り返す場合はサーバー側を調査します。
異なります。502は上流から有効な応答を受け取れない状態、504は上流から必要な応答を時間内に受け取れない状態です。
いいえ。CDN、WAF、Webサーバー、PHP-FPM、サーバー負荷などWordPress外の層も候補です。特定操作で再現する場合にプラグインやテーマも切り分けます。
まとめ
WordPressで502 Bad Gatewayが出たら、WordPressだけに原因を限定しません。一時障害か、CDN/WAFか、Webサーバー・PHPか、負荷かを順番に分けます。
発生時刻とログを残し、複数設定を同時に変えずに切り分けると、ホスティングへ問い合わせる場合も原因へ近づきやすくなります。