PHP腳本監控Nginx 502錯誤並自動重啓php-fpm

最近服務器時不時出現Nginx 502 Bad Gateway,若是在電腦旁邊還好,要是半夜或者出去了,怎麼辦?
不要緊,寫個腳本檢測服務狀態,發現異常,自動重啓。
自動重啓腳本:
php

複製代碼代碼以下:nginx


<?php 
$url = 'http://blog.rebill.info'; 
$cmd = '/usr/local/php/sbin/php-fpm restart'; 
  
for($i = 0; $i < 5; $i ++){ 
        $exec = "curl  connect-timeout 3 -I $url 2>/dev/null"; 
        $res = shell_exec($exec); 
  
        if(stripos($res, '502 Bad Gateway') !== false){ 
                shell_exec($cmd); 
                exit(); 
        } 
}
shell


原理就是用curl獲取HTTP頭,發現502狀態碼就執行重啓php-fpm的命令。
url和cmd根據實際狀況改爲本身的。而後放到crontab裏一分鐘執行一次。
服務器

複製代碼代碼以下:curl


*/1 * * * * /usr/bin/php /root/crontab/nginx502.php
php-fpm


大功告成!網站


網站502與504錯誤分析 http://my.oschina.net/766/blog/210976url

NGINX + PHP FPM 504 502錯誤 http://my.oschina.net/centerLife/blog/99302spa

相關文章
相關標籤/搜索