limit_rate

`limit_rate` 指令限制发送给客户端的响应带宽。 — NGINX HTTP Core

limit_rate
httpserverlocationif in location
语法limit_rate rate;
默认值none
上下文http, server, location, if in location
模块NGINX HTTP Core
参数1

说明

`limit_rate` 指令允许您为响应客户端设置速率限制。这在防止单个用户消耗过多服务器资源或带宽时特别有用,否则会降低其他用户的性能。该指令接受一个参数,指定以字节/秒为单位的最大传输速率。您可以包含后缀,例如 'k' 表示千字节,'m' 表示兆字节,以简化配置。 `limit_rate` 生效时,通过控制在某个时间间隔内发送的数据量来影响响应,实际上对外发流量实施了限速。该限速在请求处理的响应阶段生效,这意味着它在 `http`、`server` 和 `location` 等服务器指令上下文中有效,也可在 `location` 中的 `if` 语句内使用。这对于传输大文件或高峰期尤为有利,能够在客户端之间实现公平的带宽分配。 如果当前下载速率超过了 `limit_rate` 的设置,NGINX 会暂停数据传输以遵守该限制,从而确保不会有单个客户端独占服务器资源,为所有用户提供更平稳的体验。

配置示例

location /downloads {
    limit_rate 100k;
}

在 `if` 指令中使用 `limit_rate` 可能会由于 NGINX 的配置处理复杂性而导致意外行为。

速率限制仅适用于已传输的数据;不影响传入请求的处理。

过于严格的速率限制会导致客户端响应时间增加。