根据我的理解,在nginx中的limit_req中,我们将限制设置为max req / sec。在违反该限制时,进一步的请求被放入突发队列中并且延迟传送/执行。如果突发也被破坏,则用户得到503错误。(如果不需要延迟,则可以设置noday)
我无法找到的是在突发队列中设置请求的延迟时间。
我。即:如果将burst设置为30,则可以设置突发队列中两个请求之间的延迟时间。
答案 0 :(得分:0)
速率决定了处理请求的速度。如果将速率设置为10r / s,则表示每0.1秒处理1个请求。
如果一次收到5个请求,并不意味着它们都会通过,因为请求少于10个。它们将排队(达到你的爆发大小),并按0.1秒顺序处理。
因此,您可以有效地设置您的费率请求之间的延迟时间。
如果您不希望事情延迟,请使用nodelay参数。
有关其工作原理的详细信息,请参阅https://www.nginx.com/blog/rate-limiting-nginx/