nginx防止大量ip攻击脚本

回复 收藏
  1. #!/bin/sh
  2. ########################################
  3. nginx_home="/usr/local/nginx/conf/vhosts"            #你的nginx配置目录
  4. log_path="/usr/local/nginx/logs/access.log"    #你的日志路径
  5. ########################################
  6. tail -100 ${log_path} \
  7. |grep -i -v -E "dnspod|google|yahoo|baidu|msnbot|FeedSky|sogo" \
  8. |awk '{print $1}' |sort |uniq -c|sort -nr|head \
  9. |awk '{if($1>80)print "deny "$2";"}' > ${nginx_home}/deny.conf

注意:如果没有deny.conf这个文件,自己创建完毕后需要重启nginx服务
#关键变量解释
#tail -100 ${log_path} 读取日志中最近100行记录
#|grep -i -v -E "dnspod|google|yahoo|baidu|msnbot|FeedSky|sogo" 搜索引擎等蜘蛛除外
#|awk '{print $1}' |sort |uniq -c|sort -nr|head 合并重复记录,并计算数量
#|awk '{if($1>80)print "deny "$2";"}' > ${nginx_home}/deny.conf
#多于80行的IP将在nginx配置目录生成 Nginx deny 语法的配置文件给予调用。
2016-06-15 16:13 举报
已邀请:
0

clq56688

赞同来自:

deny.conf,这个文件,里面需要怎么配置?
0

渐行渐远

赞同来自:

clq56688 发表于 2016-6-22 10:21
deny.conf,这个文件,里面需要怎么配置?

脚本会自动把内容添加到这个文件里面

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: