我使用 apache“mod_proxy”将所有请求转发到glassfish服务器。相关的 apache 配置是:
# proxy to glassfish app
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /myAppVaadin/VAADIN/ http://127.0.0.1:8080/myAppVaadin/VAADIN/
ProxyPassReverse /myAppVaadin/VAADIN/ http://127.0.0.1:8080/myAppVaadin/VAADIN/
ProxyPass /myAppVaadin/APP/ http://127.0.0.1:8080/myAppVaadin/APP/
ProxyPassReverse /myAppVaadin/APP/ http://127.0.0.1:8080/myAppVaadin/APP/
ProxyPass / http://127.0.0.1:8080/myAppVaadin/
ProxyPassReverse / http://127.0.0.1:8080/myAppVaadin/
问题如下:
如果我使用没有代理的 Vaadin Web 应用程序,则浏览器页面重新加载按钮会重新加载当前视图,而不会创建新会话。但是,如果我使用带有 Apache 代理的 Web 应用程序,页面重新加载按钮会创建一个新会话(并且我必须再次登录我的应用程序)。
有人知道如果我使用 apache 代理重新加载网页,我该如何防止获得新的会话?
感谢并问候,Steffen
PS:用mod_proxy_ajp也有同样的效果
答案1
缺少的是:
ProxyPassReverseCookiePath /myAppVaadin /
这将调整 cookie 路径,使其正确,并且当用户按下浏览器的重新加载按钮时,将采用现有会话