我的Web应用在Tomcat中运行,地址为:http://localhost:8080/example.com/
,但是它被反向代理从80端口的Apache服务器上提供的http://example.com/
转发。我的Web应用检查request.getHeader("x-forwarded-host")
头信息来判断它是否在反向代理后面。当它(动态地)检测到这一点后,会在URL中构建不包含servlet路径的链接。
这对除了JSESSIONID cookie以外的所有内容都有效。但是,当通过反向代理访问时,JSESSIONID cookie设置的路径为/example.com
而不是/
。我无法弄清楚如何让我的代码在请求中有x-forwarded-host
头信息时告诉Tomcat覆盖该Cookie的路径。
我尝试过在Web应用程序中自己设置JSESSIONID cookie,但结果只会产生两个Set-Cookie头信息,其中只有一个是正确的。