使用ProxyPass将端口80上的流量重定向到通过Tomcat托管的Web应用程序时,使cookie工作时遇到一些问题。
我启用cookie的动机是摆脱URL后面附加的“ jsessionid =”参数。
我已经为我的Web应用程序在META-INF /的context.xml中启用了cookie。 当我通过http:// url:8080 / webapp访问Web 应用程序时,它可以按预期运行,但jsessionid参数在URL中不可见,而是存储在cookie中。
当通过apache2虚拟主机访问我的网站时,cookie似乎不起作用,因为现在将“ jsessionid”附加到了URL上。我该如何解决这个问题?
这是我的VHost配置:
<VirtualHost *:80> ServerName somedomain.no ServerAlias www.somedomain.no <代理*> 拒绝订单,允许 全部允许 </ Proxy> ProxyPreserveHost关闭 ProxyPass / http:// localhost:8080 / webapp / ProxyPassReverse / http:// localhost:8080 / webapp / 错误日志/var/log/apache2/somedomain.no.error.log CustomLog /var/log/apache2/somedomain.no.access.log合并 </ VirtualHost>
编辑:cookie实际被设置。我猜问题是cookie包含“路径:/ webapp”。
我想到了。
将此添加到VHost配置:
ProxyPassReverseCookiePath / webapp /