我正在为NGINX开发一个反应用层攻击模块,我必须每秒计算一次请求(每秒)。我们的想法是建立一个攻击自动检测器,当请求率增加时,它会打开过滤。
此时,这是在shell脚本的帮助下进行的,该脚本每秒读取访问日志并计算请求率。问题是这不是非常有效的。
如果您对如何实现这一目标有所了解,请分享您的想法。
谢谢!
答案 0 :(得分:1)
您可以使用HttpLimitReqModule:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
}
答案 1 :(得分:-1)
在access_log上使用tail -f -s
。这非常有效。