线上一台机器(该论坛所在机器)近期频繁出现502,每100次访问就会出现10次,这频率也太高了。于是开始了我的502排查之旅
ps aux |grep -c php
结果为200
netstat -an |grep -c php
结果一直在5以下,这说明php-cgi 的进程是绝对够用的。
查看php-fpm.log
tail -f /usr/local/php/logs/php-fpm.log
无有价值信息
查看nginx错误日志
tail -f /usr/local/nginx/logs/error.log
无有价值信息
感觉问题可能出在了nginx的配置上,于是网上找关于nginx.conf 的配置说明,改来改去始终解决不了这难缠的502。(该过程前后延续一周之多,改了N多个参数,因为没有价值,所以我不再详细记录,在这里简单一笔带过。)
几天过后,突然灵机一动,nginx的错误日志既然不报错,那说明定义的日志级别没有达到要报错的要求,于是找资料修改nginx错误日志级别为error(默认为crit)
请参考http://mylinux.5d6d.net/thread-1289-1-1.html
终于发现有价值的信息:
connect() to unix:/tmp/php-fpm.socket failed (11: Resource temporarily unavailable) while connecting to upstream
google了一番,马上就找到了解决问题的方法:
把
<value name="backlog">-1</value>
改成:
<value name="backlog">1024</value>
本文引用:http://www.360doc.com/content/15/0923/13/27889159_501013998.shtml