1. 程式人生 > 其它 >nginx 動態設定黑名單

nginx 動態設定黑名單

技術標籤:IT

由於上線了公共API,所以導致大量的爬蟲攻擊伺服器,然後反爬蟲機制就來了,最簡單的就是設定nginx的ip黑名單
技術交流QQ群 1093476453

  • 話不多說 先上指令碼
#!/bin/bash
# 檢視日誌5W條記錄
tail -n50000 /www/wwwlogs/39.105.38.10.log \
# 根據自己的需求擷取相應的內容 $1必不可少是IP    
|awk '{print $1,$7,$9}' \
# 過濾掉正常的多訪問記錄百度蜘蛛。。。。相信大家都知道
|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso|403|api" \
# 對單個IP訪問量進行統計並記數
|awk '{print $1}'|sort|uniq -c|sort -rn \
# 當訪問量達到峰值會向名單中新增次IP  
|awk '{if($1>1500)print "deny "$2";"}' > /www/server/nginx/conf/vhost/blockip.conf
# 載入nginx配置 
/www/server/nginx/sbin/nginx -s reload

ps 把上面的路徑配置為自己的就ok了

  • 加入伺服器的定時任務 半個小時執行一次
0,30 0-23 * * * /www/server/blockip.sh