# !/bin/bash# 進入日誌目錄
cd /www/wwwlogs;
# 遍歷訪問日誌檔案 過濾錯誤日誌
dirs=`ls ./*.log | grep -v error.log`;
# 設定ip黑名單配置檔案
blockip_file='/www/server/nginx/conf/block_ip.conf';
for dir in $[@]
do # 列出最近5000條訪問資料 過濾掉蜘蛛 列出ip 並排序
# 計算出ip重複的次數並記錄在旁邊
# 排序後 把重複次數大於 50的ip 寫入ip黑名單內
tail -n 5000 ./$dir \
| grep -v 'splider' \
| awk '' \
| sort \
| uniq -c \
| sort -rn \
| awk '' >> $blockip_file;
done
# 過濾正常允許訪問的ip
allow_ip=`cat /www/server/nginx/conf/allow_ip.conf`;
# 將阻塞ip去重後再寫入
ips=`cat $blockip_file | sort -u | grep -v $allow_ip`
echo "$ips" > $blockip_file;
# 過載nginx配置
nginx -s reload;
Nginx 動態新增IP黑名單
防止程式呼叫,原理 檢視日誌5w條記錄,對單個ip訪問量進行統計並記數超過1000視為黑名單ip,每半小時檢查執行一次指令碼 在http模組最後加上配置 黑名單設定 取最近5w條資料 tail n50000 usr local nginx logs access.log 過濾需要的資訊行ip等 aw...
nginx 動態設定黑名單
由於上線了公共api,所以導致大量的爬蟲攻擊伺服器,然後反爬蟲機制就來了,最簡單的就是設定nginx的ip黑名單 技術交流qq群1093476453 bin bash 檢視日誌5w條記錄 tail n50000 www wwwlogs 39.105.38.10.log 根據自己的需求擷取相應的內容 ...
Nginx 限制訪問 IP 位址動態黑名單
使用 nginx plus r13 時,可以將某些 ip 位址列入黑名單,可以建立並維護黑名單 ip 位址的資料庫。相對的,還可以將某些 ip 位址明確列入白名單。ip位址資料庫使用 nginx plus api 和 nginx plus keyval 模組進行管理。首先,通過 nginx keyv...