NGINX 在 CPU 满载(使用率>70%)时自动限速访问:
NGINX 在 CPU 满载(使用率>70%)时自动限速访问:
# CPU负载计算
function GetSysCPU
{
CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
CpuNum=`echo "100-$CpuIdle" | bc`
echo $CpuNum
}
if [ `GetSysCPU` -gt 70 ]
then
if [[ `head -n 1 /www/wwwlogs/waf/rate.conf` != "limit_req zone=limit5to5 burst=2 nodelay;" ]]
then
echo "limit_req zone=limit_once_per_second burst=2 nodelay;" > /www/wwwlogs/waf/rate.conf
nginx -s reload
fi
else
if [[ `head -n 1 /www/wwwlogs/waf/rate.conf` != "limit_req zone=limit5to20 burst=5 nodelay;" ]]
then
echo "limit_req zone=limit_1_times_5_times burst=5 nodelay;" > /www/wwwlogs/waf/rate.conf
nginx -s reload
fi
fi
具体教程明天咕咕。