#!/bin/sh#防刷指令碼
#env
access_path=/home/wwwlogs
access_log=y.log
iptables_top_log=iptables_top.log
drop_log=droplist.log
history_log=history.log
#ip白名單
noip=`cat noip.list`
#防刷閾值
limitnum=500
#統計請求日誌
while true
doawk '' $/$ \
| egrep -vi "$" \
| sort \
| uniq -c \
| sort -rn \
| head -20 \
>$/$
#判斷是否達到閾值
exec<$/$
while read line
docount=$(echo $line | awk '')
ip=$(echo $line |awk '')
[ "$count" -gt "$limitnum" ] && /$
}done
#傳送告警
sendnum=`cat $/$|wc -l`
[ "$sendnum" -gt "0" ] && /$) \
以上ip訪問次數頻繁,單ip 1分鐘超過閾值$請注意檢視"
python /server/scripts/iptables/sms.py 15900009999 "$"
cat $/droplist.log >>$/$
>$/$|
}#清除1分鐘內資料,準備下一次新資料
>$/$
sleep 60
done
#!/bin/sh#防刷指令碼
#env
access_path=/home/wwwlogs
access_log=y.log
iptables_top_log=iptables_top.log
drop_log=droplist.log
#防刷閾值
limitnum=500
#統計請求日誌
while true
doawk '' $/$ \
| sort \
| uniq -c \
| sort -rn \
| head -20 \
>$/$
#判斷是否達到閾值
exec<$/$
while read line
docount=$(echo $line | awk '')
ip=$(echo $line |awk '')
[ "$count" -gt "$limitnum" ] && /$
}done
#清除1分鐘內資料,準備下一次新資料
>$/$
sleep 60
done
爬蟲防封IP
當抓取資料逐漸增大時,伺服器的負荷會加大,會直接封掉來訪ip 採取措施 1.建立請求頭部資訊 建立請求頭 strhtml requests.get url,headers headers 使用get方式,獲取網頁資料 2.我們就只修改user agent還不夠,爬蟲1秒鐘可以抓取很多,通過統計ip的...
nginx lua redis 防刷和限流
防刷的概念 防刷的目的是為了防止有些ip來爬去我們的網頁,獲取我們的 等資訊。不像普通的搜尋引擎,這種爬去行為我們經過統計最高每秒300次訪問,平均每秒266次訪問。由於我們的 的頁面都在cdn上,導致我們的cdn流量會定時冒尖。為了防止這種情況,打算將網頁頁面的訪問從cdn切回主站。同時開啟防刷功...
專案 防刷限流技術
包裝秒殺令牌前置,需要驗證碼來錯峰 數學公式驗證碼生成器 限流方案 限併發 設定計數器。tps 每秒處理請求的數量 限流方案 令牌桶 介面維度 總維度集群限流 依賴redis或其他的中介軟體技術做統一計數器,往往會產生效能瓶頸 單機限流 負載均衡的前提下單機平均限流效果更好 排隊,限流,令牌均只能控...