我正在为NGINX开发一个反应用层攻击模块,我必须每秒(每秒)计算一次请求数。 这个想法是使自动检测器的攻击,当请求率增加时,打开filter。
这个时候,这是在一个shell脚本的帮助下发生的,它正在每秒读取访问日志,并正在计算请求率。 问题是,这不是很有效的性能。
如果你有一个想法,我怎么能做到这一点,请分享你的想法。
谢谢!
你可以使用HttpLimitReqmodulee:
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/HttpLimitReqmodulee
在access_log上使用tail -f -s
。 这非常有效。