nginx 動態設定黑名單
阿新 • • 發佈:2021-02-02
技術標籤: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
- 如果定時指令碼不能執行報錯的話
-bash: ./run.sh: /bin/bash^M: bad interpreter: No such file or directory 報錯解決方法
https://blog.csdn.net/simplyou/article/details/113503554