随机(不是全部)页面上的502错误

几个星期前,我在Google网站pipe理员工具中注意到,我的一些url正在返回502。

一个这样的URL是http://www.sau.com.au/forums/topic/437438-around-the-bay-wrap-up/

这个URL返回任何桌面皮肤的502,但在手机上(不同的皮肤)

请注意,它会很快返回502,这对我意味着这不是执行或某种forms的超时。

除此之外,网站上的所有其他url都可以。

唯一的日志条目是帮助这一个;

2015/06/29 09:33:39 [error] 19650#0:* 4431763上游过早closuresFastCGI stdout,同时从上游读取响应头,客户端:94.228.34.203,server:sau.com.au,请求:“GET /上传:“fastcgi:// unix:/var/run/php-fpm/php-fpm.sock:”,主机:“437438-around-the-bay-wrap-up / HTTP / 1.1” 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; 

我不愿意做任何大的改变,因为这只是在一些页面上。 一个线程build议更新PHP到5.5。

我不知道现在去哪里寻求进一步的帮助。 我的下一步应该是什么?

一些信息;

 nginx version: nginx/1.6.2 PHP 5.3.3 (fpm-fcgi) (built: Oct 30 2014 20:14:56) 

更新1

PHP错误日志没有写入它。 错误logging是启用,但;

 php_admin_value[error_log] = /var/log/php-fpm/www-error.log php_admin_flag[log_errors] = on 

更新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的情况下,才能使其跟踪,因此不会为每个请求生成跟踪日志。 特别注意以下configuration设置:

  • xdebug.trace_enable_trigger
  • xdebug.trace_output_dir
  • xdebug.collect_params
  • xdebug.trace_output_name (我喜欢“trace。%p。%t”,因为它将PID放在文件名中,在某些情况下可能会有所帮助)

有关这些configuration参数以及其他的详细信息,请参阅http://xdebug.org/docs/all_settings