Nginx PHP-FPM 502 504 自动重启脚本

网上有很多方法了:增加 php-cgi 进程 增加时间 等等 试了很多都没法完全杜绝 502 和 504 的发生,于是就想让服务器自动检测 php 是否运行正常,若不正常重启之,这样就可以在 php 出现 502 等情况时尽快恢复正常。完全杜绝的方法还在摸索... 首先新建一个 

check.php 文件放入网站根目录:

<?php
echo 'All Right';

然后 编写脚本 内容如下。此脚本并无判断是否是 502 还是 504 还是其他,只要 http 请求返回值不是 200,就重启好了.

vim restart-php-fpm.sh

名字自己写,路径自己定.

#!/bin/sh
wget http://notech.net/check.php --spider

re=$?

if [ $re = "1" ]; then
    echo "##" "502" $(date +"%y-%m-%d %H:%M:%S") "restart php-fpm " | mail -s "Critical Info" chenchen@mengxiang.org
    /etc/init.d/php-fpm restart
    echo "restart php-fpm"
fi

然后是最重要的,就是将脚本放在crontab里

chmod 755 restart-php-fpm.sh
crontab -e

*/1 * * * * (/path/restart-php-fpm.sh >> /path/restart-php-fpm.log)
* * */7 * *  rm -rf /path/restart-php-fpm.log