更多請支援:http://www.webyang.net/Html/web/article_134.html
最近nginx經常502,解決502最好的辦法就是重啟php-fpm。
手動去重啟還是比較麻煩的事情,最好的就是扔到shell裡去。
vim restart-php-fpm.sh
#!/bin/shSERVICE=\'php-fpm\'#if ps ax | grep -v grep | grep $SERVICE > /dev/nullif netstat -anp | grep 9000 > /dev/nullthen echo \"$SERVICE service running, everything is fine\"else echo \"$SERVICE is not running\" service php-fpm startfi
本地虛擬機器測試了一下,可行,扔到伺服器上去,結果發現502的時候並未php-fpm沒有進程,而是php-fpm僵死。
所以走了另外一種方案:
vim restart-php-fpm.sh
#!/bin/bashMY_URL=\"http://www.webyang.net\"RESULT=\'curl -I $MY_URL | grep \"HTTP/1.1 502\"\' if [ -n \"$RESULT\" ]; then#如果502則會執行這裡的內容,隨便加或改killall -9 php-cgiservice php-fpm restartfi
這樣的話,還是手動的,如果需要自動,自己添加到crontab裡去。
chmod 755 restart-php-fpm.sh
運行crontab -e
設定restart-php-fpm.sh 每一分鐘自動執行一次(時間可以按自己要求調)
*/1 * * * * /home/restart-php-fpm.sh
查看設定成功還是失敗
crontab -l
或者寫一個shell死迴圈,隔一個時間段去執行即可。