sticky_no_fallback
sticky_no_fallback 指令阻止 NGINX 在 sticky cookie 无法被正确处理时回退到 round-robin 负载均衡。
NGINX sticky cookie module
·
serverlocation
语法sticky_no_fallback;
默认值off
上下文server, location
参数none
说明
sticky_no_fallback 指令是 NGINX sticky cookie module 的一部分,该模块旨在基于 sticky cookie 确保客户端始终被路由到相同的 upstream server。这一指令在会话持久性至关重要的场景中特别有用,例如在请求之间维护用户状态或上下文的 web 应用中。
当启用 sticky_no_fallback 且请求携带的 cookie 无法匹配到 upstream server(例如由于该服务器不存在或 cookie 数据无效)时,NGINX 将返回 '502 Bad Gateway' 错误,而不是回退到对可用服务器的 round-robin 平衡。此行为确保客户端不会遭遇意外的状态变化,但也意味着如果目标服务器宕机或不可达,用户会看到错误而不是被重定向到其他服务器。因此,该指令允许管理员强制执行基于 cookie 的严格路由行为。
配置示例
server {
location / {
sticky;
sticky_no_fallback;
}
}⚠
如果粘性 cookie 与可用的上游服务器不匹配,请确保您的应用程序能够优雅地处理 502 错误。
⚠
使用此指令可能会导致 502 错误率升高,尤其是在后端服务器经常宕机或 cookie 值变得过时或无效时。