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="/">
.
我在 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
知道我哪里做错了吗?
提前致谢。
Ismail 帮我解决了这个问题。再次感谢你。
问题出在 Tomcat 的 /etc/tomcat/context.xml
文件中。
将 sessionCookiePath="/"
添加到 <Context>
元素解决了问题。结果行是 <Context sessionCookiePath="/">
.