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