limit_traffic_rate_zone
指令 `limit_traffic_rate_zone` 定义了一个带有限制的共享内存区域,用于根据特定流量变量控制下载速率。
NGINX Limiting rate by given variables
·
http
语法limit_traffic_rate_zone name rate variable size;
默认值none
上下文http
参数3
说明
指令 limit_traffic_rate_zone 用于创建一个共享内存区域,用来跟踪给定变量的流量速率,通常是客户端的 IP 地址或特定请求 URI。该指令对于通过在设定时间范围内限制可用给客户端的总带宽来实现流量整形至关重要。
该指令需要三个参数:速率限制类型、将被监控的变量(例如用于指定 IP 地址的 $remote_addr 或用于特定 URL 的 $request_uri)以及内存区域的大小(例如 32m)。该共享内存区域存储计算下载速率并有效管理连接限制所必需的信息,使 NGINX 能根据需要调整流量速率以防止带宽过度使用。
要强制执行这些限制,还必须在适当的上下文(如 server 或 location)中配置 limit_traffic_rate 指令。该指令随后利用 limit_traffic_rate_zone 中建立的设置,根据定义的流量速率管理发送给客户端的数据量。
配置示例
http {
limit_traffic_rate_zone rate $remote_addr 32m;
server {
location /download/ {
limit_traffic_rate rate 20k;
}
}
}⚠
确保内存区大小足够,以容纳预期的并发连接数。
⚠
在 limit_traffic_rate 指令中定义的 rate 参数要谨慎使用,以避免意外的限流。
⚠
在进行更改后,请确保重新加载 NGINX 以应用新的配置。