pxewb.com
无盘技术经验分享站点

linux+nginx+php经常出现502的一次分析

买了一台Centos云服务器后,系统自动给安装了nginx 1.6 + php 5.3.29 + mysql 5.5
把PHP程序放进云服务器后,首次测试程序访问正常,速度正常
但是把程序放到线上访问后,会慢慢地发现,访问的PHP页面越来越慢,最后直接出现502 bad gateway问题。
(在php-fpm.conf中,原本就设置了 pm = static 模式,并设置 pm.max_children = 128)
过程分析:
打开nginx访问日志,访问量并不高,平均每秒也就10个不到的请求IP,所以这点访问量,不可能导致出现PHP请求过多,出现502的,而且出现502的时候服务器非常卡。
打开php-fpm.conf日志,出现很多PHP警告及进程不足提示,
用ps查看php进程:ps -ef |grep -c php-fpm    37
明显不正常,应该是有进程卡死导致系统资源占用过多导致的。
再调整php-fpm的pm模式为pm = dynamic,
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 10000
重启php-fpm后,用ps查看php进程:
ps -ef |grep -c php-fpm    22
刚开始,访问PHP很快,然后越来越慢,再次查看进程
ps -ef |grep -c php-fpm    28
从日志和进程变化来看,可以断定是PHP程序出现的问题。

解决502最好的办法就是先查看进程数是否正常ps -ef |grep -c php-fpm 然后再重启/etc/init.d/php-fpm restart

转载请注明出处无盘技术-经验分享站点 » linux+nginx+php经常出现502的一次分析

分享到:

评论 抢沙发