PHP脚本监控Nginx 502错误并自动重启php-fpm

yipeiwu_com7年前PHP代码库

最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办?
没关系,写个脚本检测服务状态,发现异常,自动重启。
自动重启脚本:

复制代码 代码如下:

<?php
$url = 'http://blog.rebill.info';
$cmd = '/usr/local/php/sbin/php-fpm restart';
 
for($i = 0; $i < 5; $i ++){
        $exec = "curl  connect-timeout 3 -I $url 2>/dev/null";
        $res = shell_exec($exec);
 
        if(stripos($res, '502 Bad Gateway') !== false){
                shell_exec($cmd);
                exit();
        }
}

原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
url和cmd根据实际情况改成自己的。然后放到crontab里一分钟执行一次。
复制代码 代码如下:

*/1 * * * * /usr/bin/php /root/crontab/nginx502.php

大功告成!

相关文章

解析dedeCMS验证码的实现代码

如下所示:复制代码 代码如下:<?php$rndstring = '';for($i=0; $i<4; $i++) $rndstring .= chr(mt_rand(65,...

PHP技术开发技巧分享

1. 提高PHP的运行效率   PHP的优点之一是速度很快,对于一般的网站应用,可以说是已经足够了。不过如果站点的访问量很高、带宽窄或者其它的因素令服务器产生性能瓶颈的时候,你可能得想想...

解析PHP跳出循环的方法以及continue、break、exit的区别介绍

PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式:代码:复制代码 代码如下:...

php输入数据统一类实例

本文实例讲述了php输入数据统一类。分享给大家供大家参考。具体如下: <?php class cls_request{ private $getdata;//存储ge...

PHP删除二维数组中相同元素及数组重复值的方法示例

本文实例讲述了PHP删除二维数组中相同元素及数组重复值的方法。分享给大家供大家参考,具体如下: function assoc_title($arr, $key) { $tmp_a...