ホームページ >バックエンド開発 >PHPチュートリアル >NginxでデプロイされたPHPプログラムの502エラーの解決策

NginxでデプロイされたPHPプログラムの502エラーの解決策

王林
王林オリジナル
2023-05-11 08:49:582816ブラウズ

Web サーバーの中でも、中小企業や個人の Web サイトには、通常、Nginx と PHP の組み合わせが最適な選択肢として選択されます。これらは効率的、高速、低コストであるため、Web 開発で一般的に使用されるツールとなっています。ただし、Nginx と PHP の連携により、502 Bad Gateway エラーが発生することがあります。この記事では、この問題とその解決策について説明します。

1.502 Bad Gateway エラーとは何ですか?

502 不正なゲートウェイ エラーは、不正なゲートウェイ エラーとも呼ばれ、Web サーバーとゲートウェイ間のエラー ステータス コードです。リクエストがゲートウェイからサーバーに到達したときに、サーバーから返された応答がタイムアウトしたり、エラーが発生したりすると、ゲートウェイは応答データを正常に取得できなくなります。このとき、ゲートウェイは 502 エラーをクライアントに送信します。

2. 502 Bad Gateway エラーはなぜ発生しますか?

Nginx と PHP の展開メカニズムは、基本的に、Nginx を転送用のリバース プロキシとして機能させることによって実装されます。ただし、502 Bad Gateway エラーは通常、PHP が実行中にフリーズしてクラッシュしたときに発生します。これらの問題は、PHP コード エラー、PHP バージョンが低すぎる、PHP 実行タイムアウトが不十分であるなどによって発生する可能性があります。さらに、システム カーネルの不当な調整やサーバーのハードウェア リソースの不足によっても、このエラーが発生する可能性があります。

3. 502 Bad Gateway エラーを解決するにはどうすればよいですか?

3.1. PHP タイムアウトの設定

nginx 設定ファイルで PHP タイムアウトを変更することで、502 不正なゲートウェイ エラーを回避できます。 nginx 設定ファイルに次の内容を追加できます。

location ~* .php$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 600;//修改超时时间为600秒
    fastcgi_buffer_size 512k;
    fastcgi_buffers 4 512k;
    include         fastcgi_params;
}

fastcgi_read_timeout パラメータを設定すると、タイムアウトを 600 秒に設定できます。これにより、PHP スクリプトの実行時間が長くなり、502 エラーの発生を防ぐことができます。

3.2. サーバー カーネルの更新

PHP タイムアウトを更新しても問題が解決しない場合は、サーバー カーネルと PHP のバージョンに互換性があるかどうかを確認する必要があります。カーネルのバージョンが低すぎる場合、または PHP のバージョンが低すぎる場合、システムのパフォーマンスに問題が発生する可能性があります。サーバー カーネルまたは PHP のバージョンを更新すると、システムがセキュリティとパフォーマンスの最適化の最新バージョンを確実に取得できるため、502 Bad Gateway エラーの発生を回避できます。

3.3. NGINX 設定の調整

問題が解決しない場合は、Nginx 設定ファイルの一部の設定を調整してみてください。これらの設定には次のものが含まれます。

worker_processes の数を増やす
worker_connections の量を増やす
fastcgi_buffers と fastcgi_buffer_size のサイズを増やす

worker_processes と worker_connections の数を増やすと、より多くのユーザーが許可されますまた、fastcgi_buffers と fastcgi_buffer_size のサイズを増やすと、PHP スクリプトがより高速に実行され、より高速な応答が返されるようになります。

4. 概要

Nginx と PHP は、Web アプリケーションを構築するための強力なツールです。ただし、これらを組み合わせると、502 Bad Gateway エラーが発生する可能性があります。この記事では、この問題の原因と解決策について説明します。PHP タイムアウトの調整、サーバー カーネルの更新、Nginx 構成の調整などにより、502 Bad Gateway エラーを回避できます。これらの方法で問題をうまく解決できることが実践で証明されています。その他の問題が発生した場合は、Nginx および PHP の公式ドキュメントを参照するか、専門的な技術サポートを求めてください。

以上がNginxでデプロイされたPHPプログラムの502エラーの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。