PHP脚本自动监控Nginx 504错误

111 篇文章 0 订阅
42 篇文章 0 订阅

因为php连接网络超时,很容易导致nginx 504错误,网络上有很多解决办法,但是不知道为啥在我这里都不奏效。

所以我只好写一个脚本,定期检测我的站点是否504了,若有504,只好出绝招“重启nginx和php-fpm”,

具体代码如下:

#!/usr/bin/php 是你的php路径

#!/usr/bin/php
<?php
error_reporting(E_ERROR);
define("EMAIL","xxxx@163.com");//你的email地址
define("TIMEOUT",5);//读取网站超时时间,5秒
function curl_get($url){
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_TIMEOUT, TIMEOUT);
	// Headers
	$headers = array();
	$headers[] = "Date: ".date('r');
	curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
	$Data = curl_exec($curl);
	return $Data ;
}
function check($d,$k){
	$url = $d;//"http://".$d;
	$html = curl_get($url);
	if( substr_count($html,$k) > 1){
		mail(EMAIL,"JP 504 timeout for ".$d,$html);
		exec("/etc/init.d/nginx restart"); //重启nginx
		exec("/etc/init.d/php-cgi restart");//重启php-fpm
	}
}
check("http://www.xxxx.com","xxxx.com");
?>

将该文件命名为 504check.php
修改权限 chmod +x 504check.php
然后crontab -e添加一行
* * * * * /xx/504check.php >/dev/null 2>&1
每分钟系统就会自动检测网站是否响应很慢,若如此,则重启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值