数週間前、Googleウェブマスターツールで、私のURLのいくつかが502を返していることに気づきました。
そのようなURLの1つは http://www.sau.com.au/forums/topic/437438-around-the-bay-wrap-up/
このURLは、デスクトップスキンに対して502を返しますが、モバイル(異なるスキン)では正常に機能します
それは502を非常に迅速に返すことに注意してください。これは、実行または何らかの形式のタイムアウトではないことを私に示唆しています。
このようないくつかのほかに、サイト上の他のすべてのURLは問題ありません。
役立つログエントリはこれだけです。
2015/06/29 09:33:39 [エラー] 19650#0:* 4431763アップストリームから応答ヘッダーを読み取っているときに、アップストリームがFastCGI stdoutを途中で閉じました、クライアント:94.228.34.203、サーバー:sau.com.au、リクエスト: "GET/forums/topic/437438-around-the-bay-wrap-up/HTTP/1.1 "、アップストリーム:" fastcgi:// unix:/var/run/php-fpm/php-fpm.sock: "、ホスト:" www.sau.com.au "、リファラー:" http://www.sau.com.au/forums/forum/100-victoria/ "
また、役に立たなかったAPCを再起動しました。断片化はわずか1.5%でした。
制限に達したエントリが見つかりません。サーバーは非常に高いスペックであるため、PHPには大量のメモリ、要求サイズ、および長いタイムアウトがあります。
私が読んだ次のことを試しましたが、違いはありませんでした。
fastcgi_buffer_size 10240k;
fastcgi_buffers 4 10240k;
これは一部のページにのみあるため、大きな変更を加えるのは気が進まない。あるスレッドは、PHPを5.5に更新することを提案しました。
さらなる支援を今どこで探すべきかわかりません。次のステップは何ですか?
いくつかの情報;
nginx version: nginx/1.6.2
PHP 5.3.3 (fpm-fcgi) (built: Oct 30 2014 20:14:56)
UPDATE 1
PHPエラーログには何も書き込まれていません。ただし、エラーログは有効になっています。
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
UPDATE 2
dmesgが更新されていないようで、kernel.logがありません。
-rw-r--r-- 1 root root 41179 Dec 18 2014 dmesg
[〜#〜]解決済み[〜#〜]
@ sa289によって提案されたXDebugを この回答 にインストールしていました。そのためには、PHP 5.3からPHP 5.5。それだけで問題が解決することを期待していましたが、そうではありませんでした。そこで、XDebugをインストールし、zend_extensionをphp.iniに追加し、PHPを再起動すると、502が消えました。zend拡張機能を再度コメントアウトすると、502が返されました。XDebugが助けになりました。原因や真の解決策をしっかりと把握していませんが、これで十分です。
Xdebugを使用すると、どこでクラッシュする可能性があるかがわかります。 Xdebugは、実行されるコードのすべての行を通知するトレースと呼ばれる処理を実行するために使用できます。これにより、クラッシュする前に実行されたコードの最後の行を確認できるため、正しい方向を示すことができます。特定のCookieが設定されている場合にのみトレースできるため、リクエストごとにトレースログを生成する必要はありません。特に次の構成設定を確認してください。
xdebug.trace_enable_trigger
xdebug.trace_output_dir
xdebug.collect_params
xdebug.trace_output_name
( "trace。%p。%t"が好きです。ファイル名にPIDが含まれているため、特定の場合に役立ちます)これらの構成パラメーターおよびその他の詳細については、 http://xdebug.org/docs/all_settings を参照してください。