题目:
LNMP环境总是有502现象。502为网站访问的状态码,200正常,502错误是nginx最为普遍的错误状态码。由于502只是暂时的,并且只要一重启php-fpm服务则502消失,但不重启的话,则会一直持续很长时间。编写一个监控脚本,一旦发生502,则自动重启一下php-fpm。
代码:
#!/bin/bash
while :
do
chk_num=`tail -n 300 /data/log/access.log|grep -n 502|wc -l`
if [ $chk_num ! -eq 0 ]
then
systemctl restart php-fpm
fpm_chk=`pgrep php-fpm | wc -l`
if [ $fpm_chk -eq 0 ]
then
echo "`date +%F_%T`_fpm restart failed!" >> /var/log/php-fpm-restart-error.log
exit
fi
fi
sleep 10
done