LNMP:Linuxの+ nginxの+のMySQL + PHP
nginxの502は、多くの理由のために表示されますが、ほとんどはに起因することができますリソースの数は十分ではない問題とバックエンドのPHP-FPM取引は、nginxのは、バックエンドプロセスのphp-FPMに送信されたクライアント要求を訂正すること、しかし、理由PHP-FPM問題を正しく解決することはできませんPHPコードの結果、プロセス、最終的にクライアント502エラーに戻りました。
nginxの+ PHPは502不正ゲートウェイを表示され、一般的NginxはこれではないのFastCGIやPHPによって引き起こされますが、理由の問題の問題、共通している以下の(実際には、最善の方法は、問題を自分で解決するかのfastcgiとnginxのに行きますエラーログ):
1、PHPの設定ファイルphp.iniのmemory_limitの値が小さすぎます。
PHPのプログラムが大きなメモリを占有する必要があり、個々のプロセスがある場合、これは注意する必要があります。..
2、PHPプロファイルPHP-fpm.confのmax_children値または設定値不合理max_requests
リクエストを処理するのに十分なCGIプロセスがないので、小さすぎる設定、総会がしばらく状況は、正常な応答が登場している限り応答する前にしばらく時間が設定していました。
一般に、メモリに応じて算出max_children、例えば、128 1G 64,2Gセットに設定されます。実際の状況に応じて自己調整。
また、表示された場合は、コマンドの現在のPHPのFastCGIプロセスに十分な数:
netstatの-anpo | grepの「PHP-CGI 『| WC -l
であれば、』それから「、プロセスのFastCGIの数『のデフォルトの実際の使用に近い』 FastCGIプロセスの数、説明「FastCGIプロセス番号が」十分ではありません、増加する必要があります。
3、サービスnginxのエラーログの参照
ビューサービスnginxのエラーログを、応答読みながら、あまりにも大きなヘッダを送信しpstream見つかりclient_head_bufferをチェックし、fastcgi_buffer_sizeが小さすぎると、それは32Kに設定することができます。
4、長すぎるタイムアウトPHPプログラムの実行、およびnginxのFastCGIの様々なタイムアウト設定をチェックします。
nginxの中:
300 fastcgi_connect_timeout;
300 fastcgi_send_timeout;
300 fastcgi_read_timeout;
keepalive_timeout。
PHP-FPM中:
request_terminate_timeout
php.iniの中:
max_execution_timeは
質問MAX_REQUESTS 5、PHP-FPMパラメータ
PHP-FPMつのパラメータのmax_requests、このパラメータは、各治療のほとんどの子供のための要求指定された数の後にオフになります。
値が低すぎる設定されている場合、処理要求の大多数では、子どもたちに頻繁に自殺を導くことができると多くの時間を無駄に確立することを、
すべての子どもたちが、この時点ではほぼ自殺した場合には、子どもたちが復興する前に、要求に応答しませんので、502があります。
この値が0∞で大きく設定したりすることができます。(本番環境にはお勧めしませんが0に設定されています)
サーバーが非常に大規模で複雑になっている場合は、それだけで最初の、そしてより良い結果を達成する方法で洗練マシンを増やすことができます。しかし、あなたは502の同時表示されていなかった場合、一般的な問題、スクリプトのタイムアウトの問題を構成に起因することができます。