天天看點

Nginx屏蔽通路過于頻繁的IP

今天公司的網站,有幾個IP過于頻繁的通路,頻繁查詢資料庫,導緻機器負載很高,于是根據實際情況 屏蔽掉通路頻繁的IP,問題得以解決,在這裡貼出來,供大家參考參考.

腳本需要根據實際的nginx log 格式,修改,取出 通路IP 和User-Agent.

在nginx配置檔案中添加一條配置

include ./vhost/blockip.conf;      
     #!/bin/bash
      nginx_home=/usr/local/webserver/nginx
      log_path=/usr/local/webserver/nginx/logs
      tail -n50000 /usr/local/webserver/nginx/logs/access.log \
      |awk '{print $1,$12}' \
      |grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" \
      |awk '{print $1}'|sort|uniq -c|sort -rn \
      |awk '{if($1>1000)print "deny "$2";"}' >$nginx_home/conf/vhost/blockip.conf
      /etc/init.d/nginx reload      

繼續閱讀