ホームページ  >  記事  >  バックエンド開発  >  PHPがデータベースに接続すると502エラーが発生する

PHPがデータベースに接続すると502エラーが発生する

尚
オリジナル
2019-10-28 16:52:223237ブラウズ

PHPがデータベースに接続すると502エラーが発生する

nginx php 502 bad Gateway が表示される 一般的に、これは nginx の問題ではなく、fastcgi または php の問題が原因で発生します。一般的なものは次のとおりです。

1. php.ini のmemory_limit が小さすぎます (大量のメモリを占有する必要がある個々の php プログラム プロセスがある場合は、これに注意する必要があります)

2. Max_childrenまたは php-fpm.conf の max_requests の設定 無理 (設定が小さすぎると、リクエストを処理するための CGI プロセスが不足します。設定が高すぎると、しばらくは正常な応答になりますが、その後応答が戻ります)通常、子はメモリに従って計算されます。たとえば、1G は 64、2G 128 に設定されます。これは実際の状況に応じて調整されます。現在の PHP FastCGI プロセス数で十分です: netstat -anpo | grep “php-cgi” | wc -l 「FastCGI」の実際の数が使用される場合 「プロセス数」は、事前設定された「FastCGI の数」に近いです

3. nginx エラー ログを確認し、pstream が応答ヘッダーの読み取り中に大きすぎるヘッダーを送信したことを確認します。アップストリームでは、クライアントのヘッド バッファーと fastcgi バッファーのサイズが小さすぎるかどうかを確認します。これは 32K に設定できます。

4. php プログラムの実行時間が長すぎてタイムアウトになる nginx と fastcgi の各種タイムアウト設定を確認してください。

(nginx の fastcgi_connect_timeout 300; fastcgi_send_timeout 300: fastcgi_read_timeout300; keepalive_timeout; php-fpm の request_terminate_timeout、php.ini の max_execution_time)

5. php-fpm にはパラメータ max_requests があり、このパラメータは以下を指定します各子がクローズされる前に処理できるリクエストの最大数。大量のリクエストを処理する場合、この値を小さすぎると、子供たちが自殺して頻繁に作成することになり、多くの時間が無駄になります。すべての子供がほぼこの時間に自殺すると、作成する子供がいなくなります。再構築前にリクエストに応答するため、502 が表示されます。この値は、より大きい値または 0 (無限) に設定できます。

推奨:

php サーバー

以上がPHPがデータベースに接続すると502エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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