apache - 同一 session 被用于多个请求

标签 apache tomcat centos6 mod-proxy-balancer

我们开发了一个应用程序,在请求成功后, session 必须被销毁。当我们只有一个 tomcat 时,这工作正常。

但是,当我们在 Apache 简单负载均衡器下使用多个 tomcat 时,这不会发生(我们使用负载均衡器,用于平衡托管相同应用程序的两个 tomcat 之间的请求)。

创建并成功处理的SessionID,可用于多笔交易,之后将被杀死。

此外,SessionID 值附加有“n1”或“n2”(SessionID-n1)。我不确定为什么会这样。

请帮我解决这个问题。

我们的配置设置如下:

         Load Balancer
        /           \
    Cluster1      Cluster2
       |             |
    Tomcat1       Tomcat2

谢谢, 桑迪普

最佳答案

如果您已将每个 Tomcat 节点配置为具有“jvmRoute”,那么您在此处指定的字符串将附加到 session 标识符中。这可以帮助您的负载平衡器确定应使用哪个后端服务器来满足特定请求。听起来这正是您所做的。检查您的 CATALINA_BASE/conf/server.xml 文件以确认单词“jvmRoute”。

如果您只为单个事务使用一个 session ,那么您为什么要首先创建 session 呢?是请求==事务吗?

如果您确定在事务完成时终止 session ,那么即使客户端想要尝试使用相同的 session ID 发出新请求,您也应该没问题。它将不再有效,因此对客户无用。

从你的问题中不清楚 session 是否存在实际问题,因为你声称它正在“被杀死”,这听起来像是你想要它做的。如果您提供有关 session 过期的更多详细信息,我会相应地修改我的答案。

关于apache - 同一 session 被用于多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23534115/

相关文章:

java - Eclipse 中没有“在服务器上运行”选项

tomcat - 无法在 UserGrid 中注册用户 : All Host Pools Marked Down. 重试负担推给客户端

php - Windows/Apache 上的 GD2 字体锁定

php - SE 抓取 booth 目录和/index.php 文件 - 我怎样才能防止这种情况发生?

django - 如何使 mod_rewrite 与 mod_wsgi 配合良好?

java - 无法修改 Web API/Java Web App 中的对象

java - 应该使用什么地址来连接 RestService?

centos6 - 在 CentOS 上安装 Ionic 框架

fonts - 在centOS6.6上安装powerline字体

java - Pentaho : status 404 error on CentOS