Nginx限流原理详解(图文全面总结)

Nginx限流

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

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

Nginx限流原理详解(图文全面总结)-mikechen

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

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

 

Nginx限流原理

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

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

工作原理,如下图所示:

Nginx限流原理详解(图文全面总结)-mikechen

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. 令牌桶的容量限制了可以存储的令牌数量,多余的令牌会被丢弃。

 

评论交流
    说说你的看法