【发布时间】:2020-09-12 12:52:48
【问题描述】:
我创建了一个具有以下路径定义的入口控制器配置:
paths:
- path: (USA)/my-app/(.*)$
...............
- path: (UK)/my-app/(.*)$
这里发生的问题是当我没有设置以下注释时;
nginx.ingress.kubernetes.io/session-cookie-path
我在 INGRESSCOOKIE 路径中的正则表达式为:
cookie-name: INGRESSCOOKIE --------cookie-path: /(USA)/my-app/(.*)$
这来自给定路径,即 /(USA)/my-app/(.*)$。
因此,来自 Ingress 的此响应 cookie 不会返回到 Ingress 以处理对 http://USA/my-app/?id=1 的任何后续请求。 (因为 HTTP 请求路径与 INGRESSCOOKIE 中的路径不同)
并且由于这个 HTTP 请求有时会到达不同的上游服务器并且用户注销;因为请求中的会话 id 是由通过同一负载均衡器管理的不同服务器生成的。
然后我尝试将注释设置为:
nginx.ingress.kubernetes.io/session-cookie-path= /$1/my-app
但是 $1 实际上并没有在这里解决;可能我们不能在 session-cookie-path 中给出表达式。
这里有什么我没有以正确的方式做的吗?或者,我应该尝试其他方法来实现会话亲和性。
谢谢
【问题讨论】:
标签: kubernetes kubernetes-ingress nginx-config nginx-ingress