0

我有负载均衡器来平衡两个节点之间的负载。

当用户注销时,我会返回相同的登录页面。如果 User 已登录 node1 ,注销后,我想将 User 带到 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", "" );
}
4

1 回答 1

0

这可能有效,但我不认为这是 LoadBalancer 的真正用途,负载均衡器应该平衡服务器上的负载并将用户路由到服务器池中的一台服务器,这样如果一台服务器停机或完全繁忙,用户仍然可以使用其他服务器上的应用程序而没有注意到这一点。将它们粘在一台服务器上使您的 Web 服务器没有后备计划。

取而代之的是,您应该尝试将负载均衡器与一些共享会话技术一起使用,以便您的所有服务器都可以相互共享会话

于 2013-01-15T07:45:10.610 回答