当前位置: > Linux服务器 > nginx >

nginx+php-fpm出现502错误的终极解决方案

时间:2016-04-11 21:58来源:linux.it.net.cn 作者:IT
nginx+php-fpm出现502错误的终极解决方案
利用Nignx+php-fpm架构服务器的linux运维工程师们肯定都碰到过502 Bad Gateway错误的情况,出现502 Bad Gateway错误是由于php-fpm进程挂掉了,当然,当出现502 Bad Gateway错误的同时,我们也不得不说下504 timeout错误了。504错误是因为Php-fpm进程全部被占用,没有php进程来处理更多的访问引起的。这边有一个当网站出现502 Bad Gateway错误时自动去杀掉然后重启php-fpm的脚本。
#!/bin/sh

#502重启php

if [ -e /var/lock/subsys/502 ]

then

    killall -9 curl 2>/dev/null

    killall -9 php-fpm 2>/dev/null

    /usr/local/webserver/php/sbin/php-fpm >/dev/null

    echo "[ `date +'%h%d %T'` ] PHP-FPM died with no response, all processes restarted">>/data/logs/php.log

else

    touch /var/lock/subsys/502

    if [ `curl --connect-timeout 5 -I http://www.it.net.cn/ 2>/dev/null | grep '502 Bad Gateway' -c` != '0' ]

    then

        killall -9 php-fpm 2>/dev/null

        /usr/local/webserver/php/sbin/php-fpm >/dev/null

        echo "[ `date +'%h%d %T'` ] PHP-FPM died with 502 bad gateway, all processes restarted">>/data/logs/php.log

    fi

    rm -f /var/lock/subsys/502

fi



当出现502或者没有回应时写入日志文件


[ Mar24 09:14:01 ] PHP-FPM died with no response, all processes restarted
[ Mar26 08:39:01 ] PHP-FPM died with no response, all processes restarted
[ Mar26 08:41:00 ] PHP-FPM died with 502 bad gateway, all processes restarted
[ Mar26 08:44:01 ] PHP-FPM died with no response, all processes restarted
[ Mar26 09:37:02 ] PHP-FPM died with 502 bad gateway, all processes restarted


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容