【发布时间】:2012-06-23 11:00:46
【问题描述】:
我正在为 NGINX 开发一个反应用层攻击模块,我必须计算每秒(每秒)的请求数。这个想法是制作一个攻击自动检测器,当请求率增加时打开过滤。
此时,这是在 shell 脚本的帮助下发生的,该脚本每秒读取访问日志并计算请求率。问题是这不是很有效。
如果您对我如何实现这一点有任何想法,请分享您的想法。
谢谢!
【问题讨论】:
我正在为 NGINX 开发一个反应用层攻击模块,我必须计算每秒(每秒)的请求数。这个想法是制作一个攻击自动检测器,当请求率增加时打开过滤。
此时,这是在 shell 脚本的帮助下发生的,该脚本每秒读取访问日志并计算请求率。问题是这不是很有效。
如果您对我如何实现这一点有任何想法,请分享您的想法。
谢谢!
【问题讨论】:
你可以使用HttpLimitReqModule:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
}
【讨论】:
在 access_log 上使用 tail -f -s。很有效。
【讨论】: