Nginx 配置限流
Nginx 配置限流
Nginx 有限流功能,是基于漏桶算法实现的
limit_req_zone 是配置在 http 模块中的
复制代码
limit_req 是配置在 location 块、server 块、http 块中
复制代码
burst 作用
漏桶算法是匀速的,如上述的示例 rate=1r/m,每分钟就只漏出一个请求,如果一分钟来了很多的请求,就只能处理一个,其他的都抛弃掉。
但是 burst 的配置可以使用 FIFO 队列可以将请求缓存起来,只有队列满了才会拒绝新的请求,默认情况下就算进了队列也是按照 rate 速率来执行的,每分钟执行一个
delay 作用
由于排队执行,延迟大大增加,可以使用 delay 来进行设置,首先 nodelay 表示没有延迟,在队列里的也是直接就执行
由于没有延时了,导致同一时刻要同时处理漏出来的以及队列中的,那么如何控制并发数呢,可以使用 delay 来进行精确地配置
复制代码
上述配置 delay=5 表示从队列中的第 6 个请求开始延时,这样可以控制并发的数量
评论