PHP腳本監(jiān)控Nginx 502錯誤并自動重啟php-fpm
自動重啟故障相信大家都遇到過,原因也有很多,跟系統(tǒng),硬件或者外界因素都有關(guān)。最近服務(wù)器時不時出現(xiàn)Nginx 502 Bad Gateway,如果在電腦旁邊還好,要是半夜或者出去了,怎么辦?
沒關(guān)系,寫個腳本檢測服務(wù)狀態(tài),發(fā)現(xiàn)異常,自動重啟。
自動重啟腳本:
復(fù)制代碼 代碼如下:
$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();
}
}
原理就是用curl獲取HTTP頭,發(fā)現(xiàn)502狀態(tài)碼就執(zhí)行重啟php-fpm的命令。
url和cmd根據(jù)實際情況改成自己的。然后放到crontab里一分鐘執(zhí)行一次。
復(fù)制代碼 代碼如下:
*/1 * * * * /usr/bin/php /root/crontab/nginx502.php
大功告成!
補(bǔ)充:電腦總是自動重啟怎么辦
1、右擊“我的電腦”,選擇“屬性”項。
2、在打開的系統(tǒng)屬性窗口中選擇“高級系統(tǒng)設(shè)置”項進(jìn)入。
3、在打開的“系統(tǒng)屬性”窗口中,切換至“高級”選擇卡,然后點擊“系統(tǒng)和故障恢復(fù) 設(shè)置”按鈕。
4、在打開的窗口中取消勾選“自動重啟啟動”項并按確認(rèn)即可。
5、當(dāng)電腦在使用的過程中產(chǎn)生藍(lán)屏?xí)r,我們就可以進(jìn)入“系統(tǒng)日志”管理器中查看產(chǎn)生系統(tǒng)失敗的根源啦。打開“運(yùn)行”對話框,輸入命令“eventvwr.msc”即可查看日志信息,從中定位系統(tǒng)產(chǎn)生失敗的原因。
6、當(dāng)然,我們也可以通過禁用某些開機(jī)項來嘗試修復(fù)系統(tǒng)。打開“運(yùn)行”對話框,輸入命令“msconfig”進(jìn)入“系統(tǒng)配置實用程序”界面,勾選“常規(guī)”選項卡下的“診斷啟動”選項。
7、還有一種修復(fù)計算機(jī)藍(lán)屏或重啟故障的方法,就是在電腦啟動時按“F8”進(jìn)入系統(tǒng)故障菜單,從中選擇“安全模式”進(jìn)入或“最后一次正確的配置”項進(jìn)入系統(tǒng),將及有可能修復(fù)系統(tǒng)。
8、當(dāng)然,如果以上方法均不能解決問題,那么建議您還是重新安裝一下系統(tǒng),畢竟安裝系統(tǒng)所耗費(fèi)的時間相對修復(fù)所用時間要少許多。一勞永逸之事才是王道。
相關(guān)閱讀:電腦自動重啟方法
方法一:
1、打開控制面板-管理工具-計劃任務(wù)程序
2、創(chuàng)建基本任務(wù),名稱欄目,輸入“定時重啟”,下一步;
3、在窗口里,有每天、每周、每月、一次各種選擇,這里小誠選擇一次,這次執(zhí)行完就失效,您可以根據(jù)自己的情況進(jìn)行選擇哈,點擊下一步;
4、設(shè)置重啟的日期、時間點,下一步;
5、選擇啟動程序,下一步;
6、在打開頁面里,點擊瀏覽,找到C;\Windows\System32\Shutdown.exe,點擊打開;
7、在添加參數(shù)欄目里輸入“-r”(重啟),進(jìn)行下一步
8、點擊完成,即可實現(xiàn)自動重啟了
方法二:
網(wǎng)上搜索個自動重啟關(guān)機(jī)類軟件,這比較多,簡單設(shè)置一下就可以了。
自動重啟相關(guān)文章:
2.電腦自動重啟