limit_conn_status
`limit_conn_status` 指令设置在超出连接限制时返回的 HTTP 状态码。 — NGINX HTTP Core
limit_conn_status
httpserverlocation
语法limit_conn_status code;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
NGINX 中的 `limit_conn_status` 指令指定当客户端请求超出在某一上下文 (http, server, or location) 配置的连接限制时返回给客户端的 HTTP 状态码。该指令允许管理员自定义响应行为,为可能不小心尝试建立超过 NGINX 配置允许的连接数的用户提供更有意义的提示。 当由 `limit_conn` 配置的限制被触发时,可以返回指定的状态码,而不是返回默认的 503 Service Unavailable 响应(该响应可能无法为用户提供有意义的反馈)。这可以更清晰地表明情况,帮助客户端应用处理错误。状态码必须是有效的 HTTP 码,通常应避免使用常见的成功或重定向状态码以免引起混淆。 要有效使用此指令,建议评估客户端应用在触发限制时的预期行为,因为除 503 之外的状态码可能改变客户端对容量问题的响应方式。例如,使用 429 Too Many Requests 状态可能更合适,表明用户因过度访问资源而被限速。该指令还可以与专门用于监控连接限制违规的日志结合使用。
配置示例
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;
limit_conn_status 429;
}⚠
确保状态码为有效的 HTTP 响应码,以避免出现意外行为。
⚠
在错误的上下文中使用该指令可能导致配置错误。