rate_limit_status
指令 `rate_limit_status` 用于设置当请求超过速率限制时返回的 HTTP 状态码。
Redis backed rate limit module for Nginx
·
httpserverlocation
语法rate_limit_status code;
默认值none
上下文http, server, location
参数1
说明
在基于 Redis 的 NGINX 速率限制模块中,rate_limit_status 指令用于定义当请求超过配置的速率限制时应返回的 HTTP 状态码。这允许服务器向客户端表明其请求已因触及规定的限制而被限流,从而确保客户端能够适当地处理此类情况。rate_limit_status 指令可以在 http、server 或 location 上下文中设置,使其在 NGINX 的服务器块中对不同的路由配置具有灵活性。
当超出允许的速率限制时,模块会检查 rate_limit_status 指令中配置的状态码以决定应返回何种响应。默认情况下,许多应用期望收到 429 请求过多 状态码,该状态码表示用户在一定时间内发送了过多的请求。使用该指令可确保 NGINX 遵循此标准行为,或允许管理员根据应用的需求自定义响应。
例如,如果某项服务将用户限制为每分钟 15 次请求,超过该阈值将触发 rate_limit_status 中配置的响应,这有助于有效管理负载并向客户端发出信号,以相应调整请求速率从而实现更顺畅的运行。
配置示例
rate_limit_status 429;
⚠
确保指定的状态码是有效的 HTTP 状态码;否则,可能导致意外行为。
⚠
请记得正确配置速率限制上下文(例如,rate_limit、rate_limit_pass),以便看到该指令的效果。
⚠
如果在不同上下文中定义了多个 rate_limit_status 指令,则以最具体的那个为准。注意覆盖行为。