Nginx 限流

在nginx主配置中加

http {
     limit_req_zone $binary_remote_addr zone=nglimit:100m rate=200r/s; 
}

100m 用于指定限流区域 nglimit 所占用的内存空间。这个值通常需要根据服务器的性能和预期的请求频率来合理设置。内存的分配越大,存储的状态信息越多,可以更准确地进行请求限流,但也会占用更多的服务器内存。

200r/s 每秒允许的请求频率

站点中修改

location / {
  limit_req zone=nglimit burst=100 nodelay; 
}
  • burst=100 允许的突发请求数等。

以宝塔为例

NG

站点

burst 参数用于设置允许的突发请求数。这个参数指定了在限流策略生效时,允许在一次请求周期内突发处理的最大请求数量。当达到限流的请求频率时,如果有突发请求超过了指定的 burst 数量,Nginx 会暂时允许处理这些突发请求,而不会立即进行限流处理。

换句话说,burst 参数用于控制限流策略在短期内对突发请求的处理方式。例如,如果您设置了 rate=200r/s(每秒允许请求频率为 200 次)和 burst=100,那么在一秒钟内允许的请求数为 200 个,但如果有突发请求,最多可以允许处理 300 个请求,以平滑处理请求峰值。