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

Gaj*_*jus 9 nginx

这有什么区别:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood nodelay
Run Code Online (Sandbox Code Playgroud)

和:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood burst=5 nodelay
Run Code Online (Sandbox Code Playgroud)

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

小智 15

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

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

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


小智 6

Burst 意味着它会延迟下一秒,如果超过 30 个请求/秒,则 nginx 发送 503 错误代码。

Burst 就像队列一样工作


Ala*_*vey 1

在你的情况下:

平均每秒不超过30个请求,突发不超过5个请求。

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

  • 使用定义中定义的单词并不是很有用。limit_req 上下文中的“突发”是什么?(其他答案也回答了这个问题) (2认同)