Nginx 502/504等自动重启PHP脚本

nginxNginx虽然是小内存VPS搭建Web服务的利器,但是最让人苦恼的恐怕就是经常出现的502和504等一系列的错误了,虽然网络上也有不少解决的方法(比如增加php时间等),但面临很多状况下,“重启试试”才是最快解决问题的方法。今天微魔和大家分享的就是来自网友的Nginx 502/504自动重启php-fpm的脚本(原文)。基本的思路就是通过crontab运行脚本文件,实时监控网站(x.php文件),若未返回正常值(200),则重新启动php-fpm服务(并写入日志,以邮件方式告知),具体操作方法如下,

1. 在根目录新建x.php 文件放入网站根目录:

<?php echo 'vmvps.com'; ?>

2. 新建监控脚本vim restart-php-fpm.sh(不要在web目录下新建),然后 编写脚本内容如下(注:此脚本并无判断是否是 502 还是 504 还是其他,只要 http 请求返回值不是 200,就重启!)

vim restart-php-fpm.sh

#!/bin/sh
wget http://vmvps.com/x.php --spider

re=$?

if [ $re = "1" ]; then
    echo "##" "502" $(date +"%y-%m-%d %H:%M:%S") "restart php-fpm " | mail -s "Critical Info" admin@vmvps.com
    /etc/init.d/php-fpm restart
    echo "restart php-fpm"
fi

3. 添加 crontab:

chmod 755 restart-php-fpm.sh
crontab -e
*/1 * * * * (/path/restart-php-fpm.sh >> /path/restart-php-fpm.log)
* * */7 * *  rm -rf /path/restart-php-fpm.log

/path/需修改为你对应的路径,,第一行为每分钟运行一次监控脚本并写入日志文件;第二行为每周删除日志文件。

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

多条评论

  1. 感謝分享~

    另外我覺得更新版本也挺有影響的,之前有一個站點用 1..4 比較會這樣,上上禮拜換成 1.10.0,那台就沒發做了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注