NGINX count requests per second
我正在为NGINX开发一个反应用程序层攻击模块,我必须每秒(每秒)对请求进行计数。这个想法是要使攻击者自动检测器,当请求率增加时,它会打开过滤。
这是在shell脚本的帮助下发生的,该脚本每秒读取一次访问日志并计算请求速率。问题在于这不是非常有效的性能。
如果您对我该如何实现有任何想法,请分享您的想法。
谢谢!
您可以使用HttpLimitReqModule:
1 2 3 4 5 6 7 8 9 10 11 12 | 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
在access_log上使用