C NGINX每秒计数请求数

C NGINX每秒计数请求数,c,nginx,C,Nginx,我正在为NGINX开发一个反应用层攻击模块,我必须计算每秒(每秒)的请求数。其想法是制作一个攻击自动检测器,当请求速率增加时,该检测器将启用过滤功能 此时,这是在shell脚本的帮助下发生的,该脚本每秒读取一次访问日志,并计算请求速率。问题是,这不是非常有效的性能 如果你对我如何实现这一点有想法,请分享你的想法 谢谢大家! 您可以使用HttpLimitReqModule: http { limit_req_zone $binary_remote_addr zone=one:10m rat

我正在为NGINX开发一个反应用层攻击模块,我必须计算每秒(每秒)的请求数。其想法是制作一个攻击自动检测器,当请求速率增加时,该检测器将启用过滤功能

此时,这是在shell脚本的帮助下发生的,该脚本每秒读取一次访问日志,并计算请求速率。问题是,这不是非常有效的性能

如果你对我如何实现这一点有想法,请分享你的想法


谢谢大家!

您可以使用HttpLimitReqModule:

http {
limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;

...

server {

    ...

    location /search/ {
        limit_req   zone=one  burst=5;
    }

参考资料:

在访问日志中使用
tail-f-s
。非常有效。

嗨!谢谢你的回复,但我认为这对我帮助不大。此模块限制每个用户的请求。。。。我不想那样。我需要计算每秒的请求数,我想将其添加到我的模块中(nginx必须尽可能轻量级)(可能是一些每秒刷新的递增变量),但捕获这些请求的方法是什么,以便我可以递增变量?谢谢。我同意上述建议。您希望删除来自特定IP地址的所有流量,而不是锁定您的服务!第二种方法是在此解决方案中使用fail2ban