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 サイトの他の関連記事を参照してください。