zoukankan      html  css  js  c++  java
  • 一个简单自动监控nginx 504错误的php脚本

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

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

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

    1. #!/usr/bin/php
    2. <?php
    3. error_reporting(E_ERROR);
    4. define("EMAIL","xxx@gmail.com");//你的email地址
    5. define("TIMEOUT",5);//读取网站超时时间,5秒
    6. function curl_get($url){
    7.                 $curl = curl_init();
    8.                 curl_setopt($curl, CURLOPT_URL, $url);
    9.                 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    10.                 curl_setopt($curl, CURLOPT_TIMEOUT, TIMEOUT);
    11.                 // Headers
    12.                 $headers = array();
    13.                 $headers[] = "Date: ".date('r');
    14.                 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    15.                 $Data = curl_exec($curl);
    16.                 return $Data ;
    17.  
    18. }
    19.  
    20. function check($d,$k){
    21.         $url = $d;//"http://".$d;
    22.         $html = curl_get($url);
    23.         if( substr_count($html,$k) &lt; 1){
    24.                 mail(EMAIL,"JP 504 timeout for ".$d,$html);
    25.                 exec("/etc/init.d/nginx restart "); //重启nginx
    26.                 exec("/etc/init.d/php-fpm restart");//重启php-fpm
    27.         }
    28. }
    29.  
    30. check("https://www.homezz.com","homezz.com");
    31. ?>

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

  • 相关阅读:
    tigerVNC远程桌面,跨内网
    Nutch 二次开发之parse正文内容
    在一个字符串中找到第一个仅仅出现一次的字符。
    图像处理之霍夫变换(直线检測算法)
    EJB3.0开发环境的搭建
    uestc 250 数位dp(水)
    Matlab画图-非常具体,非常全面
    高性能I/O设计模式Reactor和Proactor
    leetcode第一刷_Path Sum II
    PreTranslateMessage作用和用法
  • 原文地址:https://www.cnblogs.com/shihao/p/2318198.html
Copyright © 2011-2022 走看看