php-fpm經常出現502解決方法

更多請支持:www.2cto.com

最近nginx經常502,解決502最好的辦法就是重啟php-fpm。
手動去重啟還是比較麻煩的事情,最好的就是扔到shell裡去。

vim restart-php-fpm.sh

#!/bin/sh
SERVICE='php-fpm'

#if ps ax | grep -v grep | grep $SERVICE > /dev/null
if netstat -anp | grep 9000 > /dev/null
then
    echo $SERVICE service running, everything is fine
else
    echo $SERVICE is not running
    service php-fpm start
fi

本地虛擬機測試瞭一下,可行,扔到伺服器上去,結果發現502的時候並未php-fpm沒有進程,而是php-fpm僵死。
所以走瞭另外一種方案:

vim restart-php-fpm.sh

#!/bin/bash
MY_URL=https://www.webyang.net
RESULT='curl -I $MY_URL | grep HTTP/1.1 502\'
 
if [ -n $RESULT ]; then
#如果502則會執行這裡的內容,隨便加或改
killall -9 php-cgi
service php-fpm restart
fi

這樣的話,還是手動的,如果需要自動,自己添加到crontab裡去。
chmod 755 restart-php-fpm.sh
運行crontab -e
設置restart-php-fpm.sh 每一分鐘自動執行一次(時間可以按自己要求調)
*/1 * * * * /home/restart-php-fpm.sh
查看設置成功還是失敗
crontab -l

或者寫一個shell死循環,隔一個時間段去執行即可。

 

發佈留言