我有负载平衡器来平衡两个节点之间的负载。
当用户注销时,我会点击相同的登录页面返回。如果用户登录到node1,在注销后,我希望带用户到node2。
放置在负载均衡器中的重定向规则不起作用(规则在下面提到)。因此,当用户注销时,我想删除JSESSIONDID,假设它现在可能转到另一个节点。
在注销之前,我需要使会话无效。如果我遵循下面的步骤,
1. Remove JSESSIONID
2. session.invalidate();
在上述情况下,如果JSESSIONID在使会话无效之前被删除,它会使会话无效吗?因为SESSIOND ID已经删除
1. session.invalidate();
2. Remove JSESSIONDID
在这种情况下,我已经使会话无效。那么,我能删除JSESSIONID吗?
重定向规则
if ( ($url == "loginPageURL") && ( http.getcookie( "JSESSIONID" ) == "" ))
{
http.setcookie( "JSESSIONID", "" );
}
发布于 2013-01-14 23:45:10
不过,我不认为这是真正的LoadBalancer,负载均衡器应该平衡服务器上的负载,并将用户路由到服务器池中的某个服务器,这样,如果一台服务器停机或完全繁忙,用户仍然可以在其他服务器上使用该应用程序,而不会注意到这一点。将它们粘在一台服务器上,使您的web服务器没有退步计划。
相反,您应该尝试使用一些共享会话技术来使用负载均衡器,这样您的所有服务器都可以彼此共享会话。
https://stackoverflow.com/questions/14333101
复制