Mad*_*har 3 nginx web-server rate-limiting
在限制来自IP的请求数量时,我使用
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;
Run Code Online (Sandbox Code Playgroud)
我可以以r/m(每分钟请求数)或r/s(每秒请求数)为单位指定速率。有没有办法指定请求/小时的速率?
例如,我希望速率为 75 个请求/小时。所以它将是 1.25r/m,但 r/m 必须是整数。所以,即使这样也行不通。
请帮帮我。
在某些时候,我需要相同的函数来定义每小时、每天、每周等的速率限制。
我很想ngx_http_limit_req_module首先构建一个克隆,但随后只是将必要的更改集成到nginx-mod中。
所以这适用于 nginx-mod:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/h; # 1 request per hour
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/d; # 1 request per day
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/w; # 1 request per week
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/M; # 1 request per month
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/Y; # 1 request per year
Run Code Online (Sandbox Code Playgroud)
根据文档,您可以指定每秒请求数或每分钟请求数,而不是每小时请求数,所以这是不可能的。
The rate is specified in requests per second (r/s). If a rate of
less than one request per second is desired, it is specified in
request per minute (r/m). For example, half-request per second
is 30r/m.
Run Code Online (Sandbox Code Playgroud)
我建议您根据您的用例向上舍入或向下舍入。1r/s 是每分钟 60 个请求,2r/s 是每分钟 120 个请求。
| 归档时间: |
|
| 查看次数: |
14866 次 |
| 最近记录: |