Nginx 502 Bad Gateway 自动重启脚本

Nginx 502 Bad Gateway 自动重启脚本

作者:稚子 时间:2017-04-06 分类:操作系统相关 评论:0条 浏览:3096

推荐脚本

需要确保系统已安装curl,centos可以执行:yum install curl,debian/ubuntu可以执行:apt-get install curl

winscpvi有或nano在/root目录下创建502.sh 内容如下:

#!/bin/bash
# author: licess
# website: http://www.lnmp.org

CheckURL="https://www.vpser.net"

STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`
#echo "$CheckURL Status Code:\t$STATUS_CODE"
if [ "$STATUS_CODE" = "502" ]; then
        /etc/init.d/php-fpm restart
fi
chmod +x /root/502.sh

crontab 一分钟执行一次。上面的https://www.vpser.net改成你的地址,如果该页面是静态,需换成以php的页面地址。
crontab 教程:https://www.vpser.net/manage/crontab.html

其他的重启脚本,下面这个如果php函数里禁用了shell_exec 将无法使用。

#!/usr/bin/php
<?
$url = 'https://www.vpser.net';
$cmd = '/etc/init.d/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();
}
}
?>

crontab 一分钟执行一次。 url和cmd根据自己的改。

原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。

相关推荐
更多

发表评论

邮箱地址不会被公开。 必填项已用*标注

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。