Nginx 502 Bad Gateway 自动重启脚本
推荐脚本
需要确保系统已安装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="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的命令。
本站遵循CC协议署名-非商业性使用-相同方式共享
转载请注明来自:稚子的成长博客
- 下一篇: 使用终端命令行将本地项目上传到Git并提交代码
- 上一篇: 解决Emoji表情无法保存到数据库的问题
相关推荐
- 如何才能成为软件界的能工巧匠
- Posted on 11月25日
- ThinkPHP5(RC2)中如何使用模型的自动完成及自动验证
- Posted on 01月20日
- 【分享】36种漂亮的CSS3网页按钮Button样式
- Posted on 04月01日
- c#中将word、excel、ppt转换成html
- Posted on 04月19日