WordPressの502 Bad Gatewayの原因と直し方|サーバー・PHPの確認手順

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・設定・ログ
502gateway/proxyが上流から有効な応答を得られないプロキシ、上流サーバー、PHP-FPM
503一時的な過負荷・メンテナンスなどで処理できない負荷、メンテナンス、サービス状態
504gateway/proxyが上流から時間内に応答を得られないタイムアウト、遅い上流処理

502は「無効な応答」、504は「必要な応答を時間内に得られない」という違いがあります。実際のサーバー実装によって表示メッセージは異なるため、ログとステータスコードで判断します。

500の詳しい切り分けは500 Internal Server Errorの対処、503は503 Service Unavailableの対処へ分けます。

エラーログとホスティングへ伝える情報

502は複数サーバー間の問題になりやすいため、問い合わせ時の情報が重要です。

  • 正確なURL
  • 502が出た日時
  • 毎回か一時的か
  • 特定ページだけかサイト全体か
  • CDN・WAFの利用有無
  • PHPバージョン
  • 直前に更新したプラグイン・テーマ
  • WebサーバーやPHPのログ
  • 負荷グラフの該当時刻

ホスティング側でしか見られないupstreamログがある場合、この情報から調査してもらえます。

よくある質問

Q
502はブラウザーのキャッシュを消せば直りますか?
A

ブラウザー側の一時表示で再読み込み後に直ることはありますが、502の本質はgateway/proxyと上流サーバー間の応答です。繰り返す場合はサーバー側を調査します。

Q
502と504は同じですか?
A

異なります。502は上流から有効な応答を受け取れない状態、504は上流から必要な応答を時間内に受け取れない状態です。

Q
WordPressのプラグインだけが502の原因ですか?
A

いいえ。CDN、WAF、Webサーバー、PHP-FPM、サーバー負荷などWordPress外の層も候補です。特定操作で再現する場合にプラグインやテーマも切り分けます。

まとめ

WordPressで502 Bad Gatewayが出たら、WordPressだけに原因を限定しません。一時障害か、CDN/WAFか、Webサーバー・PHPか、負荷かを順番に分けます。

発生時刻とログを残し、複数設定を同時に変えずに切り分けると、ホスティングへ問い合わせる場合も原因へ近づきやすくなります。

この記事を書いた人

Hara Daizo

Hara Daizo

Web制作会社、Web担当者を経て独立。17年以上の実務経験で培った制作スキルとSEOノウハウを活かし、現在はSTARRY代表としてWordPressサイト制作・集客サポートを提供。大手クラウドソーシングのWebデザイナーランキング上位受賞多数。