NGiNX為何會502呢~ 大多都是PHP-FPM死蹺翹了,我在AceLNMP那篇文章中也有講解過該如何調教負載能力,機器配備不錯的,設定參數當然設高一點才能撐的住,但我最近碰到了鬼打牆現象 ? 某台機器的PHP升級到5.3.8之後偶而會掛掉,而且還連NGiNX一起掛,設定檔卻又都沒問題,同樣的設定檔在一堆機器上跑都沒出什麼包,系統也大同小異,挖哩咧!所以只好摸摸鼻子多放一包乖乖了… :er
好啦~ 總之就弄個自動監測的SHELL吧 ?
vi /root/nginx-502-restart.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/bash export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/local/bin:$HOME/bin:$HOME ############### 你要修改的地方從這裡開始 ############### # 本機的網址 URL=https://520.be/ # NGiNX程式的路徑 NGiNX=/usr/local/nginx/sbin/nginx ############### 你要修改的地方從這裡結束 ############### if [ -e /var/lock/subsys/502 ] then killall -9 curl 2>/dev/null killall -9 php-fpm 2>/dev/null service php-fpm start >/dev/null $NGiNX -s reopen else touch /var/lock/subsys/502 if [ `curl --connect-timeout 5 -I $URL 2>/dev/null | grep '502 Bad Gateway' -c` != '0' ] then killall -9 php-fpm 2>/dev/null service php-fpm restart >/dev/null $NGiNX -s reopen fi rm -f /var/lock/subsys/502 fi |
然後把他交給最勤奮滴CRONTAB兄弟去自動每5分鐘檢查一次有沒有出怪手,有的話就重新啟動NGiNX跟PHP-FPM ?
chmod +x /root/nginx-502-restart.sh
crontab -e
新增以下這行就可以收工啦~ ?
*/5 * * * * /root/nginx-502-restart.sh > /dev/null 2>&1