サーバーが 502 と表示される理由は、接続がタイムアウトしたためです。サーバーにリクエストを送信しました。サーバーには現在接続が多すぎるため、サーバーは通常の接続を提供できません応答すると、このようなエラーが発生します。
したがって、サーバーの同時実行数が非常に大きい場合は、まずマシンを追加してから、より良い結果を得るために次の方法で最適化するしかありませんが、同時実行数が小さくても 502 を取得する場合は、一般的には可能です。構成の問題、スクリプトのタイムアウトの問題が原因である可能性があります。
1. php-fpm プロセスの数が十分ではありません
netstat -napo | grep "php-fpm" | wc -l を使用して現在の数を確認してくださいfastcgi プロセス数が conf で設定した上限に近い場合は、プロセス数を増やす必要があります。
ただし、無限に増やすことはできません。サーバーのメモリに応じて、php-fpm サブプロセスの数を 100 以上に調整できます。4G メモリを備えたサーバーでは、200 で十分です。
2. Linux カーネルによって開かれるファイルの数を増やす
次のコマンドを使用できます (root アカウントである必要があります)
echo 'ulimit -HSn 65536'>> /etc/profile echo 'ulimit -HSn 65536'>> /etc/rc.local source /etc/profile
3. スクリプト実行時間のタイムアウト
##何らかの理由でスクリプトが返されずに長時間待機し、新しいリクエストが処理されない場合は、次の設定を適切に調整できます。 nginx.conf 主な内容は以下の通りです:fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;php-fpm.conf 内容が以下の場合:
request_terminate_timeout =10s
4. キャッシュ設定比較的小さいです
nginx.conf の構成を変更または追加しますproxy_buffer_size 64k; proxy_buffers 512k; proxy_busy_buffers_size 128k;推奨チュートリアル:
以上がphp502の問題は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。