Tomcat 执行 ssl 终止会话时未检测到

Tomcat when doing ssl termination session isn't detected

当使用 nginx(Kubernetes 集群中的 nginx 控制器)执行 SSL 终止并将数据发送到 apache 和 tomcat 作为普通 HTTP 时会有什么不同,这可能会阻止我们的应用程序检测到登录会话?

一切正常,希望我们的应用程序有一个叫做 DetectLogin class 的东西,并且在使用 nginx SSL 终止时它不会检测到用户会话。如果我禁用 nginx SSL 终止并启用 SSL 直通,那么我们的应用程序可以检测到登录会话。

在日志中,我看到 Port 8009 AJP 端口正在处理检测登录,但未检测到会话。

我们的流量就像 LB -> Nginx 控制器 -> Apache httpd(用于静态内容)-> Tomcat(用于提供 JSP 内容)。 Apache 使用 (mod_jk).

使用 AJP 端口转发与 tomcat 相关的所有 JSP

有关故障排除的任何建议都会有所帮助。

@Piotr P. Karwasz 感谢您的评论我能够弄清楚 nginx 会话 cookie 名称与 TOMCAT cookie 名称相同。我禁用了以下所有功能,因为我只是在测试它是否有任何效果。禁用或更改 session-cookie-name 解决了问题。

nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "JSESSIONID"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"