【问题标题】:NGINX count requests per secondNGINX 每秒请求数
【发布时间】:2012-06-23 11:00:46
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: c nginx


    【解决方案1】:

    你可以使用HttpLimitReqModule:

    http {
    limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
    
    ...
    
    server {
    
        ...
    
        location /search/ {
            limit_req   zone=one  burst=5;
        }
    

    参考:http://wiki.nginx.org/HttpLimitReqModule

    【讨论】:

    • 嗨!感谢您的回复,但我认为这对我没有多大帮助。这个模块限制了每个用户的请求......我不希望这样。我需要计算每秒的请求数,并且我想将其添加到我的模块中(nginx 必须尽可能轻量级)(可能是一些每秒刷新的递增变量)但是捕获这些请求的方法是什么所以我可以增加变量?谢谢。
    • 我会接受上述建议。您想丢弃来自特定 IP 地址的所有流量,而不是锁定您的服务!第二种方法是在此解决方案中使用 fail2ban rtcamp.com/tutorials/nginx/fail2ban
    【解决方案2】:

    在 access_log 上使用 tail -f -s。很有效。

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      相关资源
      最近更新 更多