「502 Bad Gateway」または「504 Gateway Timeout」?一目で見抜き、修正するためのガイド

ウェブサイトを管理・運営していると、ゲートウェイのエラーに出くわすことがあり、いつも頭を悩ませる。その中でも502 不正なゲートウェイ 歌で応える 504 ゲートウェイタイムアウト これらの "兄弟 "エラーは、最も一般的ですが、最も混乱させるものでもあります。この2つのエラーに直面したとき、多くの管理者が混乱し、トラブルシューティングの方向を間違えてしまいます。この記事では、この2つの根本的な違いを分析し、トラブルシューティングのための明確なフレームワークを提供します。

502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout

I. 中核概念:レストランに例えて2つのエラーの性質を理解する

この2つを手っ取り早く区別するには、古典的なレストランに例えるのが効果的だ。

1.1 502 バッド・ゲートウェイ:バック・オブ・ハウスは閉鎖されている

あなたがレストラン(あなたのウェブサイト)で食事をしているとします。あなた(ブラウザ)はウェイター(Nginx/Apacheなどのウェブサーバ)に注文をします。ウェイターは注文を受け、それを作るためにバックルーム(PHP-FPMやデータベースなどの上流サービス)に渡す必要があります。

  • 502 間違ったシーンウェイターが厨房の奥に駆け込むと、ドアに鍵がかかっていてシェフがいない。ウェイターは料理を手に入れることができず、あなたのところに戻って、"裏の厨房に行けず、料理が作れません "と報告しなければならない。
  • 技術物質これは、ゲートウェイまたはプロキシとして動作するサーバー(サーバー)が、上流サーバー(バックルーム)から有効で期待される応答を受信できなかったことを示す。502エラーは、接続が拒否されたり、上流のサービスがクラッシュしたり、無効なデータを返したりすることで発生します。
502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout

1.2 504 Gateway Timeout: バックルームの調理が遅すぎる

さて、シナリオは少し違う。

  • 504 間違ったシナリオウェイターは注文をバックキッチンに伝え、それから待ち始めた。レストランが設定した合理的な待ち時間をはるかに超えて、彼は長い長い時間待ったが、バックキッチンはまだ出来上がった料理を渡していない。ウェイターはこれ以上待つことができず、"バックキッチンが料理を作る制限時間を超えてしまったため、ご注文の料理をお出しすることができません "と謝りに来なければならなくなった。
  • 技術物質ゲートウェイまたはプロキシサーバー(ウェイター)が、上流サーバー(バックルーム)からの応答を待っている間に、あらかじめ設定されたタイムアウトを超過したことを示します。上流サービスの処理速度が遅いことが504の主な原因である。
502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout

II.根本原因分析:2つのエラーの具体的な原因の比較

この比喩を理解した上で、その技術的なルーツを具体的に分析してみよう。

2.1 502 Bad Gatewayの一般的な根本原因

  • PHP-FPMサービスが動作しなくなったPHP-FPMプロセスマネージャ自体が何らかの理由でクラッシュしたり停止したりすることで、 NginxがソケットやTCPポートを介してプロセスと通信できなくなるためです。
  • 資源枯渇サーバーのメモリまたは CPU リソースが完全に枯渇し、新しい PHP プロセスが作成できない。
  • 誤ったプロキシ設定:Nginxの設定ファイルにプロキシパスそしてfastcgi_passなどのディレクティブは、間違ったアドレスやポート、存在しないソケットファイルを指している。
  • コード致命的エラー::PHPプロセスを即座に終了させるコードに重大なエラーがあり、 リクエストの処理中に PHP-FPM の子プロセスが突然クラッシュしました。
502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout

2.2 504ゲートウェイのタイムアウトの一般的な根本原因

  • PHPスクリプトの実行タイムアウトPHPスクリプト(複雑なデータインポートタスクなど)の実行に時間がかかりすぎて、Nginxのプロキシ・リード・タイムアウトまたはPHP-FPMリクエスト終了タイムアウトセッティング
  • 遅いデータベースクエリサイトが非常に大きな、または最適化されていないデータベースクエリを実行し、データベースが結果を返すのに時間がかかり、PHPスクリプトが待ち続け、最終的にリクエスト全体がタイムアウトしました。
  • 外部API呼び出し待ち時間:あなたのワードプレスウェブサイトが外部APIサービス(例:決済ゲートウェイ、ソーシャルメディア・インターフェイス)を呼び出す必要がある。
  • サーバーリソース不足サービスはまだ実行中ですが、サーバーのパフォーマンスがボトルネックになっているため、リクエストの処理に非常に時間がかかり、タイムアウト時間内に完了できません。
502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout

第三に、実際の調査:段階を踏んで問題を特定し、解決する。

ここでは、表面的な原因から根本的な原因へとたどり着くための体系的なトラブルシューティング・プロセスをご紹介します。

3.1 最初のステップ:サーバーログの確認

ログは問題を診断する最初のサイトだ。

  • Nginx / Apache エラーログ::
    • ルート例::/var/log/nginx/error.log もしかしたら /var/log/apache2/error.log.
    • コンテンツを探すエラーが発生した時点の近くで、"502 "または "504 "を含むエントリを検索する。ログには通常、"Connection refused to upstream"(502を指す)や "upstream timed out"(504を指す)など、より具体的なエラー情報が記載されています。

3.2 ステップ2:的を絞った解決策

502 Bad Gatewayの修正:

502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout
  • バックエンド・サービスの再起動PHP-FPM サービスを再起動してみてください。コマンドは通常 sudo systemctl restart php-fpm(具体的なサービス名はphp8.1-fpm(など)。
  • 資源使用の検査使用 フリーエム メモリをチェックするには トップ もしかしたら htop CPU使用率をチェックする。リソースが枯渇している場合は、リソースを消費しているプロセスを特定するか、サーバー構成のアップグレードを検討する必要があります。
  • プロキシ設定の確認Nginxのコンフィギュレーション・ファイルで fastcgi_pass ディレクティブが指すパス (例えば unix:/var/run/php/php8.1-fpm.sock)またはポート(例えば 127.0.0.1:9000)は存在し、正しい。

504ゲートウェイのタイムアウトに関する修正:

  • 遅いクエリとスクリプトの最適化::
    • などのメソッドを使う。クエリーモニター「このようなWordPressプラグインは、実行速度の遅いデータベースクエリを見つけ出し、最適化する。
    • 自分のコードを見直して、長いループや重い計算タスクを実行しないようにする。
502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout
  • タイムアウト設定の調整::
    • Nginxコンフィギュレーションファイルの 場所 ブロックの中に、適宜 プロキシ・リード・タイムアウト 歌で応える fastcgi_read_timeout 値(例えば、デフォルトの60秒から120秒へ)を変更する。これは一時的な緩和策に過ぎず、根本的な原因は依然としてパフォーマンスを最適化する必要性にある。
    • ある php-fpm プールプロファイル(www.conf)をチェックする。 リクエスト終了タイムアウト セッティング
  • 外部サービスのチェックあなたのサイトが外部のAPIに依存している場合、これらのサービスのステータスと応答性をチェックしてください。

3.3 ステップ3:WordPress固有の要因のトラブルシューティング

502であれ504であれ、WordPressのプラグインやテーマが原因である可能性があります。

502 Bad Gateway504 Gateway TimeoutGateway reports errorPHP-FPMNginx timeout
  • すべてのプラグインを無効にします。FTPまたはファイルマネージャ経由で。 wp-content/plugins ディレクトリ名を プラグインの無効化これは直ちにすべてのプラグインを無効にします。これで直ちにすべてのプラグインが無効になります。その後、エラーが消えるかどうか確認してください。問題が解決した場合は、問題のあるプラグインを見つけるために、プラグインを1つずつ有効にしてください。
  • デフォルトテーマの切り替え現在のテーマをWordPress付属のデフォルトテーマ(例:Twenty Twenty-Four)に一時的に切り替え、テーマの互換性の問題をトラブルシューティングする。

IV.概要と主な相違点の表

診断特性502 不正なゲートウェイ504 ゲートウェイタイムアウト
コアの意味ゲートウェイが上流サービスに連絡できないゲートウェイが上流サービスの応答タイムアウトを待つ
レストラン・メタファーバックルーム閉鎖/崩壊キッチンが遅すぎる。
課題ステージ接続確立フェーズリクエスト処理段階
主要チェックポイントPHP-FPM サービスのステータス、リソース、設定PHP/データベーススクリプトの実行時間、外部呼び出し

502エラーと504エラーを正確に区別することが、ウェブサイト・ゲートウェイの問題を効率的に解決する第一歩です。502は「接続性」と「可用性」を、504は「パフォーマンス」と「効率」を意味します。効率」です。この記事で提供するトラブルシューティングの道筋を、ログの分析から的を絞った修正、WordPressコンポーネントのトラブルシューティングまでたどることで、これらの問題を体系的に解決し、サイトを安定した運営に戻すことができるようになります。ログはあなたの親友であり、トラブルシューティングへの体系的なアプローチはあなたの最も強力なツールであることを忘れないでください。


お問い合わせ
チュートリアルが読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ!
カスタマーサービス WeChat
カスタマーサービス WeChat
電話:020-2206-9892
QQ咨询:1025174874
Eメール:[email protected]
勤務時間: 月~金、9:30~18:30、祝日休み
© 複製に関する声明
この記事はALEX SHANによって書かれました。
終わり
好きなら応援してください。
クドス98 分かち合う
ALEX SHANのアバター - Photon Flux Network|プロフェッショナル・ワードプレス修理サービス、ワールドワイド、迅速対応
解説 ソファ購入

コメントを投稿するにはログインしてください

    コメントなし