产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 一个简单自动监控nginx 504错误的php脚本 [转载]

zmyamh
金牌会员
6028.52 价值分

zmyamh 发表于 2014-11-26 09:01:06
来自原作者blog:
因为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.homezz.com","homezz.com");

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


这个配合amh的任务计划模块应该很不错
我的wordpress不知道是因为模板写的不好还是咋回事,经常出现502错误,如果也有一个监控502错误的脚本就更帅啦~
2014-11-26 09:01:06 1

webees.net
铝牌会员
475.00 价值分

本帖最后由 webees.net 于 2015-2-12 12:13 编辑

We are bees to collect honey in the network.
  支持 (0分)  反对 (0分)
回复  2014-11-26 21:00:51 2

amysql
创始人
16530.81 价值分

上面代码是用php执行ssh脚本
exec("/etc/init.d/nginx restart "); //重启nginx
exec("/etc/init.d/php-fpm restart");//重启php-fpm

没必要这样。
直接任务计划添加amh的重启命令。
nginx:
amh nginx restart

php的要看用哪个环境。
任务计划模块下面有示例。
  支持 (0分)  反对 (0分)
回复  2014-12-02 11:00:00 3

AMH面板 - 好用高效低占用、安全可靠极稳定

 1  (总1页)
AMH社区列表
用户服务中心