nginx防止ddos策略
1.脚本防御
使用ab进行压力测试,并通过脚本获取访问日志中访问量前3的IP地址
模拟20人发起2000次访问
ab -c 20 -n 2000 http://192.168.189.161/
查询目前nginx日志中访问次数排行前3的IP地址
awk '{print $1 }' /usr/local/nginx/logs/access.log | sort | uniq -c | sort -nr | head -n 3
将IP地址取出后使用iptables封锁即可!
可以结合iptables 编写ddos防御脚本
---------------------------------------------------------------------
#!/bin/bash
ip=($(awk '{print $1 }' /usr/local/nginx/logs/access.log | sort | uniq -c | awk '$1>50{print $2}'))
for i in ${ip[@]}
do
iptables -L -n | grep DROP | grep -q $i
if [ $? -ne 0 ];then
iptables -A INPUT -s $i -j DROP
fi
done