limit_traffic_rate
根据指定变量(例如其 IP address 或请求的 URL)限制客户端的总下载速率。
NGINX Limiting rate by given variables
·
httpserverlocation
语法limit_traffic_rate variable rate;
默认值none
上下文http, server, location
参数2
说明
limit_traffic_rate 指令用于控制客户端的总下载速率,特别有助于防止过度的带宽使用。该指令与 limit_traffic_rate_zone 配合工作,后者通过指定一个变量(例如 $remote_addr 或 $request_uri)以及用于跟踪连接的共享内存量来定义限速规则。
一旦在 http、server 或 location 等上下文中设置了 limit_traffic_rate 指令,它就会对客户端在任一时刻可以下载的数据施加限制。它通过将定义的总限额在所有活动连接之间分配来计算允许的下载速率。所使用的公式确保随着多个连接被打开,速率限制仍然有效,从而在不同客户端和连接之间实现公平使用。
要有效实施速率限制,必须先使用 limit_traffic_rate_zone 定义共享内存区域,为跟踪客户端请求分配必要的内存。这种方法使 limit_traffic_rate 即使在大量客户端请求导致带宽动态波动时也能保持一致的限制。
配置示例
http {
limit_traffic_rate_zone rate $remote_addr 32m;
server {
location /download/ {
limit_traffic_rate 20k;
}
}
}⚠
确保在使用该指令之前先定义共享内存区域。
⚠
必须以有效单位指定速率(例如 k、m),以避免配置错误。
⚠
使用非常低的限制可能导致用户下载体验出现显著延迟。