lnmp下重启php,lnmp出现502 Bad Gateway自动重启PHP

使用LNmp有一段时间了,可是在流量大的时候,有时会莫名其妙的出现Nginx 502 Bad Gateway,不是php-fpm死掉了,就是nginx死掉了,网站多的时候根本没空每天一个个检查,往往是网站dwon了1、2天后才发现,流量损失了不少。

以下个解决此类错误的方法,自动检测网站是否正常,不正常的话就自动重启LNmp。

首先,在网站根目录下建立一个 php文件 test200.php,内容随便写几个字,如:<?php

echo "200_OK";

?>

然后建立一个脚本 vi test200_monitor.sh

脚本里的内容如下:wget http://www.xiaohuai.com/test200.php --spider

c_monitor=$?

if [ $c_monitor = "1" ];

then

echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "restart lnmp.. " | mail -s "Critical Info: Website is offline." 1388888888@139.com

/usr/local/php/sbin/php-fpm restart

echo "restart lnmp: php-fpm"

fi

这个脚本的意思就是监控 http://www.xiaohuai.com/test200.php 这个网页,如果返回的不是 200 状态码,就自动重启 PHP。

其中命令行 /usr/local/php/sbin/php-fpm restart 可以换成其他命令,如 /root/lnmp restart 等。邮箱换成你自己的,每次发生错误时,会给你发送邮件。

然后是设定权限:

chmod 777 /root/test200_monitor.sh

运行定时程序:

crontab -e

输入以下内容每隔5分钟检测一次

*/5 * * * * /root/test200_monitor.sh

好了,大功告成。你可以放心的工作去了与happy了,lnmp不会再出现502 Bad Gateway的错误了。

如果你希望直接在php脚本里运行命令行也可以,网站根目录下建立一个php文件 monitor.php ,里面内容如下:

$url = 'http://www.xiaohuai.com';

$cmd = '/usr/local/php/sbin/php-fpm restart';

$exec = "curl --connect-timeout 5 -I $url 2>/dev/null";

$res = shell_exec($exec);

if(stripos($res,'502 Bad Gateway') !== false){

shell_exec($cmd);

exit();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值