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

yipeiwu_com6年前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

大功告成!

相关文章

php安全配置 如何配置使其更安全

另外,目前闹的轰轰烈烈的SQL Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。 我们php手手工安装的,php的默认...

PHP获取中英混合字符串长度的方法

今晚在写框架的表单验证类时,需要判断某个字符串长度是否在指定区间内,很自然地,想到了PHP中的strlen函数。复制代码 代码如下:$str = 'Hello world!';echo...

mayfish 数据入库验证代码

一般在把数据写入数据库之前,先对将要写入的数据进行校验,可以避免出现比较严重的安全问题(例如一般性的SQL注入攻击)。 mayfish 可以灵活的自定义将要执行写入的数据内容的校验规则,...

PHP 数组排序方法总结 推荐收藏

随着PHP的快速发展,用它的人越来越多,在PHP数组学习摘录部分了解到最基本的PHP数组的建立和数组元素的显示。需要深入学习下PHP数组的相关操作。首先接触的就是PHP数组排序、降序的排...

Array of country list in PHP with Zend Framework

复制代码 代码如下: public static function countryList($local) { $locale = new Zend_Locale('en_US'); $...