Nginx limit_req 设置中突发的定义是什么?

Nginx limit_req 设置中突发的定义是什么?

这有什么区别:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood nodelay

和:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood burst=5 nodelay

文档http://wiki.nginx.org/HttpLimitReqModule

答案1

就你的情况而言:

平均每秒最多允许 30 个请求,突发事件不超过 5 个请求。

参考:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

答案2

正如它所说的那样http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

过多的请求将被延迟,直到其数量超过最大突发大小

这意味着,在您的情况下,前 5 个请求将被“忽略”,并且只计算第 6 个及以上的请求。因此,在请求 35 时,将达到 30 的限制。然后,在来自同一来源的同一 1 秒内的请求 36 时,nginx 将发送 503 响应,而不是进一步处理该请求。

答案3

突发意味着将会延迟下一秒,如果每秒有超过 30 个请求,那么 nginx 将发送 503 错误代码。

Burst 的工作原理与队列类似

相关内容