一个简单自动监控nginx 504错误的php脚本

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

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

具体代码如下:
#!/usr/bin/php 是你的php路径

#!/usr/bin/php 
< ?php error_reporting(E_ERROR); 
define("EMAIL","xxx@gmail.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-fpm restart");//重启php-fpm         
} 
}  
check("https://www.game1.cc","game1.cc");
 ?>

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

转载请注明:快乐点点通 » 一个简单自动监控nginx 504错误的php脚本
继续查看有关 php监控, php脚本, 自动监控 的文章

评论已关闭