这有什么区别:
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)
小智 15
正如它在http://nginx.org/en/docs/http/ngx_http_limit_req_module.html上所说的
过多的请求被延迟,直到它们的数量超过最大突发大小
这意味着在您的情况下,前 5 个请求被“忽略”,仅计算 6 个及以上的请求。因此,在请求 35 时达到了 30 的限制。然后,在同一 1 秒内来自同一来源的请求 36 中,nginx 将发送 503 响应而不是进一步处理该请求。
在你的情况下:
平均每秒不超过30个请求,突发不超过5个请求。
参考:http ://nginx.org/en/docs/http/ngx_http_limit_req_module.html