首 页 » 网络杂谈 » Nginx 502 Bad Gateway 自动重启脚本

Nginx 502 Bad Gateway 自动重启脚本

2013-11-26 | 浏览人数: 4,826次 | 分类: 网络杂谈 | 1条评论 | 查看评论 发表评论

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

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

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

CheckURL=”http://www.abc.com”

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 一分钟执行一次。上面的http://www.abc.com改成你的地址,如果该页面是静态,需换成以php的页面地址。
crontab 教程:http://www.deepvps.com/linux-vps-crond.html

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

#!/usr/bin/php
<?
$url = ‘http://www.abc.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的命令。

原创文章如转载,请注明:转载自深度VPS [ http://www.deepvps.com ]
[复制本文链接发送给您的好友]
  • 上一篇:
  • 下一篇:
  • 日志信息 »

    该日志于2013-11-26 21:25由 deepvps 发表在网络杂谈分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

    相关日志 »

    沙发已经被占,赶紧抢板凳吧![点此发言]

    1. 1楼 转:Nginx 502 Bad Gateway 自动重启脚本 « 全球VPS咨询 2013年11月27日 12:23

      [...] 原文地址:http://www.deepvps.com/nginx-502-bad-gateway-restart.html [...]

    发表评论 »

    = 9 + 9 (防止机器人评论)

     疑问 冷笑 悲伤 坏蛋 感叹 微笑 脸红 大笑 吃惊 惊讶 困惑 酷 大声笑 恼火 古怪 转眼睛 给眼色 好主意 箭头 一般 哭了 绿人