You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整HAProxy Ingress配置实现每次请求自动延长会话亲和Cookie有效期

解决方案

你遇到的Cookie有效期无法刷新的问题是HAProxy Ingress默认行为导致的:默认仅在客户端未携带有效会话Cookie时才会下发Set-Cookie响应头,后续携带合法Cookie的请求不会重新下发Cookie,因此Max-Age不会被刷新。你可以通过新增专属注解修改该行为:

完整可用配置示例

ingress.kubernetes.io/affinity: cookie
ingress.kubernetes.io/session-cookie-keywords: indirect nocache httponly attr Max-Age=3600
ingress.kubernetes.io/session-cookie-name: IngressCookie
# 新增以下注解开启Cookie有效期自动刷新
ingress.kubernetes.io/session-cookie-refresh: "true"

配置说明

  • 新增的ingress.kubernetes.io/session-cookie-refresh: "true"注解开启后,只要客户端携带的会话Cookie合法有效,HAProxy Ingress会在每次响应时都重新返回Set-Cookie头,将Max-Age重置为你设置的3600秒,实现每次请求自动续期的效果。如果客户端连续3600秒没有发起请求,Cookie会自动过期失效。
  • 该方案同时解决了你目前临时方案的痛点:不需要移除Max-Age属性,不会出现Cookie生命周期和浏览器会话永久绑定的问题;配合drain-support特性使用时,Pod更新后只要客户端超过3600秒无新请求,Cookie自动失效后新请求就会调度到新Pod,旧Pod可以正常下线,不会出现无法销毁的问题。

注意事项

session-cookie-refresh是HAProxy Ingress v0.12及以上版本提供的特性,如果你当前使用的版本低于该要求,需要先升级HAProxy Ingress版本后再配置该注解。


内容的提问来源于stack exchange,提问作者Jan Ziegler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:15:03