我有以下指向入口资源的网址:
https://example.com/USA/my-app
https://example.com/UK/my-app
我已经编写了一个入口配置,以针对 URI 中基于国家/地区的不同服务:
host: example.com
path: /USA(/|$)(.*)$ # Application context of upstream server is /my-app
backend:
serviceName: USA-REGION-SERVICE
servicePort: 80
path: /UK(/|$)(.*)$ # Application context of upstream server is /my-app
backend:
serviceName: UK-REGION-SERVICE
servicePort: 80
并且,我使用入口注释将目标重写为:
nginx.ingress.kubernetes.io/rewrite-target: /$2
我在这里面临的问题是JSESSIONID cookie;上游服务器返回带有路径/my-app的set-cookie标头是正确的;但是浏览器指向路径/USA/my-app或/UK/my-app。
结果,我丢失了上游服务器生成并返回的会话作为 set-cookie 标头,用户很快就会注销,他们会发送另一个请求。
有什么方法可以更新 JSESSIONID 响应标头吗?或者,我尝试的方式有问题?
添加nginx.ingress.kubernetes.io/session-cookie-path
注释应该可以解决您的问题。
名称:
nginx.ingress.kubernetes.io/session-cookie-path
说明:将在 Cookie 上设置的路径(如果入口路径使用正则表达式,则需要(
值:字符串(默认为当前匹配的路径(