最近服務器時不時出現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