在使用 ProxyPass 将端口 80 上的流量重定向到通过 Tomcat 托管的 Web 应用程序时,我在让 cookie 工作时遇到了一些问题。
我启用 cookie 的动机是摆脱附加到 URL 的“jsessionid=”参数。
我在 META-INF/ 的 context.xml 中为我的 Web 应用程序启用了 cookie。
当我通过http://url:8080/webapp访问 web 应用程序时,它按预期工作,jsessionid 参数在 URL 中不可见,而是存储在 cookie 中。
通过 apache2 虚拟主机访问我的网站时,cookie 似乎不起作用,因为现在将“jsessionid”附加到 URL。我该如何解决这个问题?
这是我的虚拟主机配置:
<虚拟主机 *:80>
服务器名称 somedomain.no
ServerAlias www.somedomain.no
<代理 *>
订单拒绝,允许
允许所有人
</代理>
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 结合
</虚拟主机>
编辑:实际上正在设置 cookie。我猜问题是cookie包含“路径:/ webapp”。