NGINX每秒计数请求数

我正在为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 。 这非常有效。