Nginx+iptables屏蔽訪問(wèn)Web頁(yè)面過(guò)于頻繁的IP(防DDOS,惡意訪問(wèn),采集
通過(guò)分析nginx的日志來(lái)過(guò)濾出訪問(wèn)過(guò)于頻繁的IP地址,然后添加到nginx的blockip.conf,并重啟nginx
腳本如下:
#!/bin/sh
nginx_home = /Data/app_1/nginx
log_path = /Data/logs
/usr/bin/tail -n50000 $log_path/access.log \
|awk ‘$8 ~/aspx/{print $2,$13}’ \
|grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” \
|awk ‘{print $1}’|sort|uniq -c |sort -rn \
|awk ‘{if($1>150)print “deny “$2″;”}’> $nginx_home/conf/vhosts/blockip.conf
/bin/kill -HUP `cat $nginx_home/nginx.pid`
也可以通過(guò)分析nginx日志過(guò)濾出頻繁訪問(wèn)IP,直接用iptables屏蔽這個(gè)IP,就用不著重啟nginx了,并且屏蔽效果更好。
單個(gè)IP的命令是
iptables -I INPUT -s 124.115.0.199 -j DROP