Nginx配置限流

编程入门 行业动态 更新时间:2024-10-24 12:23:40

<a href=https://www.elefans.com/category/jswz/34/1771256.html style=Nginx配置限流"/>

Nginx配置限流

Nginx配置限流

Nginx有限流功能,是基于漏桶算法实现的

limit_req_zone是配置在http模块中的

#设置限流  zone用来定义ip状态和url访问频率的共享区域,其中mylimit为区域名称,冒号后为区域大小,16000个IP地址的状态信息大约是1M,rate为最大请求速率(如每分钟一个请求)
limit_req_zone $binary_remote_addr zone=mylimit:1m rate=1r/m;

limit_req是配置在location块、server块、http块中

# 请求限流 zone为上述定义的区域名称  burst为排队大小  nodelay表示不限制单个请求的延迟时间
limit_req zone=mylimit burst=10 nodelay;

burst作用

漏桶算法是匀速的,如上述的示例rate=1r/m,每分钟就只漏出一个请求,如果一分钟来了很多的请求,就只能处理一个,其他的都抛弃掉。

但是burst的配置可以使用FIFO队列可以将请求缓存起来,只有队列满了才会拒绝新的请求,默认情况下就算进了队列也是按照rate速率来执行的,每分钟执行一个

delay作用

由于排队执行,延迟大大增加,可以使用delay来进行设置,首先nodelay表示没有延迟,在队列里的也是直接就执行

由于没有延时了,导致同一时刻要同时处理漏出来的以及队列中的,那么如何控制并发数呢,可以使用delay来进行精确地配置

limit_req zone=mylimit burst=10 delay=5;

上述配置delay=5表示从队列中的第6个请求开始延时,这样可以控制并发的数量

/2021/服务器/Nginx/8.配置限流/

本文由 mdnice 多平台发布

更多推荐

Nginx配置限流

本文发布于:2023-12-06 03:48:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1666349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Nginx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!