Tomcat 上的 Vaadin 应用落后于 Traefik 结果会话已过期

Vaadin app on Tomcat behind Traefik results in Session Expired

我在 Tomcat 服务器 运行 上有一个小型 Vaadin/Rapidclipse 应用程序。作为反向代理,我使用 Traefik v1.7.4。 如果我通过 http://159.69.121.213:8080/TestTraefik/ 直接连接到服务器,一切正常。

http://159.69.121.213:8080/TestTraefik/是public,你可以直接用它来测试。

如果我通过 mycob.int.yyyy.com 连接,该网站已加载,但它立即出现 "Session Expired"。

traefik.toml

################################################################
# Global configuration
################################################################
logLevel = "DEBUG"
defaultEntryPoints = ["http", "https"]
################################################################
# Entrypoints configuration
################################################################
[entryPoints]
    [entryPoints.http]
    address = ":80"
      [entryPoints.http.redirect]
        entryPoint = "https"
    [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]
        [[entryPoints.https.tls.certificates]]
          certFile = "/etc/letsencrypt/live/int.yyyy.com/fullchain.pem"
          keyFile = "/etc/letsencrypt/live/int.yyyy.com/privkey.pem"
[file]
filename = "./rules.toml"
watch = true
################################################################
# Traefik logs configuration
################################################################
[traefikLog]
 filePath = "log/traefik.log"
################################################################
# Access logs configuration
################################################################
[accessLog]
 filePath = "/path/to/log/log.txt"
################################################################

rules.toml

[frontends]
  [frontends.mycob2]
    entrypoints = ["https"]
    backend = "mycob"
    passHostHeader = true
    [frontends.mycob2.routes.all]
       rule = "Host:mycob.int.yyyy.com;AddPrefix:/TestTraefik"

[backends]
  [backends.mycob]
    [backends.mycob.servers.tomcat]
        url = "http://159.69.121.213:8080"

我可以想象问题出在 PUSH 连接上。在使用 Apache 代理的 post 中,似乎添加 ProxyPassReverseCookiePath 带来了解决方案,但我找不到 Traefik 这样的选项。

知道我哪里做错了吗?

提前致谢。

Ismail 帮我解决了这个问题。再次感谢你。

问题出在 Tomcat 的 /etc/tomcat/context.xml 文件中。

sessionCookiePath="/" 添加到 <Context> 元素解决了问题。结果行是 <Context sessionCookiePath="/">.