Nginx如何限流扛住高并发请求?

Nginx如何限流扛住高并发请求?

经验文章nimo972025-07-06 15:15:521A+A-

关注mikechen十余年BAT架构经验倾囊相授!

大家好,我是mikechen。


Nginx是大型架构的必备中间件,下面我就全面来详解Nginx限流原理@mikechen

文章来源:mikechen.cc

Nginx限流

Nginx限流(Rate Limiting): 是指通过配置 Nginx 来,限制客户端在一定时间内访问服务器的请求频率。

Nginx 限流的核心目标:是控制客户端请求的速率或并发连接数,以保护服务器免受过载或恶意攻击。

比如:通过Nginx限流,可以防止恶意攻击(如DDoS攻击)、或意外流量激增导致服务器过载。

以及,控制流量,确保服务器在承受范围内稳定运行。


Nginx限流原理

Nginx 限流的工作原理:是基于 令牌桶算法(Token Bucket) 实现的。

令牌桶算法是一种灵活且有效的限流算法,它允许一定程度的突发流量,同时又能平滑地限制请求速率。

工作原理,如下图所示:

http {    limit_conn_zone $binary_remote_addr zone=conn_zone:10m;     server {        location /download/{            limit_conn conn_zone 2;            proxy_pass http://fileserver;}}}

大致流程,如下:

  1. 令牌桶算法的核心思想:是维护一个固定容量的“令牌桶”。
  2. 系统以恒定的速率向令牌桶中放入令牌。
  3. 每个请求到来时,都需要从令牌桶中获取一个令牌才能被处理。
  4. 如果令牌桶中没有足够的令牌,则请求会被拒绝或等待。
  5. 令牌桶的容量限制了可以存储的令牌数量,多余的令牌会被丢弃。


以上


文章来源:mikechen.cc

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7