0

2 つのノード間の負荷を分散するためのロード バランサーがあります。

ユーザーがログアウトすると、同じログイン ページに戻ります。ユーザーが 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", "" );
}
4

1 に答える 1

0

それはうまくいくかもしれませんが、LoadBalancerが本当に目的だったとは思いません.Load Balancerはサーバーの負荷を分散し、サーバープール内のサーバーの1つにユーザーをルーティングする必要があります.それに気付かずに他のサーバーのアプリケーション。それらを1つのサーバーに固執すると、Webサーバーにフォールバック計画がなくなります。

その代わりに、すべてのサーバーが互いにセッションを共有できるように、いくつかの共有セッション テクノロジで Load Balancer を使用するようにしてください。

于 2013-01-15T07:45:10.610 に答える