遇到问题:
VPS小内存LNMP服务器,网站访问量偶尔突然增加,会导致php进程卡死,出现Nginx 502 Bad Gateway故障,
这个时候只要重启php进程,网站马上恢复正常。
解决办法:
在不增加硬件投入的情况下,当网站出现Nginx 502 Bad Gateway故障时,在1分钟内让php进程自动重启,
从而解决问题。
具体步骤:
说明:
php进程启动命令:service php-fpm start
php进程服务名:php-cgi #php 5.3以上版本中进程服务名为:php-fpm
/home/wwwlogs/502 #判断php进程是否卡死中间过程文件
/home/wwwlogs/502_error.log #php进程重启日志记录文件
/home/php-restart.sh #脚本文件
1、nano /home/php-restart.sh #编辑输入以下代码
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
#!/bin/sh
if [ -e /home/wwwlogs/502 ]
then
killall -9 curl 2>/dev/null
killall -9 php-cgi 2>/dev/null
service php-fpm start >/dev/null
echo "[ `date +'%D %T %A'` ] PHP-FPM died with no response, all processes restarted">>/home/wwwlogs/502_error.log
else
touch /home/wwwlogs/502
if [ `curl --connect-timeout 5 -I http://www.osyunwei.com/ 2>/dev/null | grep '502 Bad Gateway' -c` != '0' ]
then
killall -9 php-cgi 2>/dev/null
service php-fpm start >/dev/null
echo "[ `date +'%D %T %A'` ] PHP-FPM died with 502 bad gateway, all processes
restarted">>/home/wwwlogs/502_error.log
fi
rm -rf /home/wwwlogs/502
fi
ctrl+o #保存配置
ctrl+x #退出
2、chmod +x /home/php-restart.sh #添加脚本执行权限
3、修改/etc/crontab
nano /etc/crontab #在下面添加
*/1 * * * * root /home/php-restart.sh #表示每分钟执行一次脚本
4、重新启动crond使设置生效
service cron stop #停止
service cron start #启动
/etc/init.d/cron restart #重启
chkconfig cron on #设为开机启动 先要安装chkconfig(apt-get install chkconfig)
至此,VPS小内存LNMP服务器Nginx 502 Bad Gateway故障一分钟内自动恢复解决办法教程完成