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
