一聚教程网:一个值得你收藏的教程网站

热门教程

Nginx 502 Bad Gateway 自动重启脚本

时间:2022-06-30 18:51:43 编辑:袖梨 来源:一聚教程网

方法一,利用shell脚本,启动 php 和重启nginx配合linux系统的crontab -e计划任务重启。

新建 php文件 200_ok.php 文件(这个随便,内容也随便只要是想使用curl的访问方式)

 代码如下 复制代码
echo "200";
?>

建立一个脚本 vi web_monitor.sh (里面还有重启tomcate 的指令,后来发现使用正常关闭shutdown 有文件后台进程相关,可以直接杀掉进程的方式 ps -ef|grep java)
内容如下:

 代码如下 复制代码
#!/bin/bash
#author:Pomelo Lee
#website:http://www.111com.net
CheckUrl="http://www.111com.net /200_ok.php"
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" != "200" ]; then
/usr/local/webserver/php/sbin/php-fpm stop
sleep 1
/usr/local/webserver/php/sbin/php-fpm start
sleep 1
pkill -9 nginx
sleep 1
/usr/local/webserver/nginx/sbin/nginx
#sleep 1
#/usr/local/tomcat7/bin/shutdown.sh
#sleep 2
#/usr/local/tomcat7/bin/startup.sh
fi

然后是设定权限:chmod 755 /root/web_monitor.sh

运行定时程序:crontab -e

输入以下内容每隔5分钟检测一次:*/5 * * * * /root/web_monitor.sh


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

 代码如下 复制代码


#!/usr/bin/php

方法三,自动重启Lnmp


把下面的代码保存为一个.sh文件,例如restart502.sh(在Windows下的话注意转换成UNIX格式,否则可能会出错。)

 代码如下 复制代码

#!/bin/bash
#Created by http://www.111com.net
website=http://www.111com.net #修改为自己的网址
if
curl  -I $website|grep "HTTP/1.1 502"
then
/root/lnmp restart
fi例如把他放到/root/restart502.sh

获取权限

 代码如下 复制代码

chmod +x /root/restart502.sh添加到crontab定时任务(每八分钟执行一次)

crontab -e
*/8 * * * * /root/restart502.sh

这样就完成了

热门栏目