2013-12-20 223 views
2

根据我的理解,在nginx的limit_req中,我们将limit设置为max req/sec。在突破这个限制时,进一步的请求被放入突发队列中并延迟传送/执行。如果突发也被破坏,用户会得到503错误(如果不需要延迟,那么可以设置noday)NGINX:设置突发延迟时间

我无法找到的是为突发队列中的请求设置延迟时间。

i。即:如果突发设置为30,那么,我可以设置突发队列中的两个请求之间的延迟时间。

回答

0

速率决定处理请求的速度。如果将速率设置为10r/s,则意味着每0.1秒会处理1个请求。

如果你一次得到5个请求,这并不意味着他们都会通过,因为有少于10个请求。他们会排队(达到你的爆发大小),并按0.1秒的顺序进行处理。

所以你有效地设置你的延迟时间之间的请求与您的利率。

如果您不想让事情延迟,请使用nodelay参数。请参阅https://www.nginx.com/blog/rate-limiting-nginx/