2

我使用一个 Apache HTTPD 和多个 Tomcat 作为负载平衡解决方案。会话粘性基于JSESSIONIDcookie。我有两个问题真的需要你的帮助。

1)Tomcat版本为7,cookies可以与子域共享。域如下所示:

  • en.mydomain.com
  • es.mydomain.com
  • it.mydomain.com

配置在context.xml

<Context sessionCookieDomain=".mydomain.com" sessionCookiePath="/">

同时,我们有分子域的暂存环境,cookies也可以跨以下域共享:

  • en.alpha.mydomain.com
  • es.alpha.mydomain.com
  • it.alpha.mydomain.com

配置在context.xml

<Context sessionCookieDomain=".alpha.mydomain.com" sessionCookiePath="/">

但有时,JSESSIONIDcookie 可以在en.mydomain.com和之间共享en.alpha.mydomain.com,这是意料之中的

如何解决这个问题?Cookie 不应不同级别的子域中共享。

2)我尝试刷新JSESSIONID上述问题的cookie,但失败了。在 Tomcat JSP 中:

session.invalidate();
session = request.getSession(true);
out.print(session.getId());

JSESSIONIDcookie 在直接访问此 Tomcat JSP 时会刷新,但在访问其代理 Apache 时保持不变。我应该修改mod_proxy等以通过访问 Apache URL 来支持JSESSIONIDcookie 刷新吗?

4

0 回答 0