ngx_http_limit_req_module用于限制指定key的并发请求数。例如可以限制单个IP地址的请求速率。限制是使用漏桶算法的方法来实现。
例子:
1 | http { |
limit_req指令
Syntax: limit_req zone=name [burst=number] [nodelay];
Default: —
Context: http, server, location
当请求速度超过了zone所配置的速度,他们的请求会被延时,就像以所设定的速度在进行请求一样。超出限制的请求数量超过了最大的burst大小,会直接返回503,默认情况下最大的burst为0.
如果不希望超出的请求被延时处理,可以设置nodelay:
1 | limit_req zone=one burst=5 nodelay; |
可以设置多个limit_req指令
1 | limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s; |