1

現在、同じ VPS で実行されている2 つの Tomcat 6.0.32 インスタンス ( Tomcat1およびTomcat2 ) で構成される非常に基本的なクラスターがあります。mod_proxy_ajp と mod_proxy_balancer を Apache 経由のロード バランサーとして (同じ VPS 上で) 使用しています。基本フォーム認証 (j_security_check 経由) を使用して、ユーザーの認証済みセッションを作成しています。

ロード バランサは正常に機能しており、認証されていないセッションが 2 つのインスタンス間で正常に複製されています。ただし、認証されたセッションを各インスタンス間で置き換えることはできません。

session.jsp という非常に基本的な JSP (JPS テンプレートhttp://www.syslog.gr/articles-mainmenu-99/15-tomcat-cluster-session-replication.htmlに基づく) を使用してセッションをテストしています。新しいセッションかどうかを確認し、JSESSIONID を出力します。私は、保護領域内に JSP のコピーを 1 つ、保護領域外に 1 つのコピーを持っています。

次のテストを実行しました。

テスト 1) Tomcat1
上のアプリケーションの保護領域の外にある session.jsp にアクセスし、JSESSIONID を書き留めて、 Tomcat1がリクエストを処理したことをロード バランサーで確認します。次に、 Tomcat1をシャットダウンし、ページを更新します。リクエストはTomcat2によって処理されるようになりました (ロード バランサーによって確認されています)。ページの読み込みが完了すると、元の JSESSIONID が表示され、セッションは存続しています。

テスト 2) Tomcat1
のアプリケーションの保護領域内にある session.jsp にアクセスします。これにより、ログインが求められます。ログイン後、session.jsp に送信され、JSESSIONID を書き留めて、Tomcat1がリクエストを処理したことをロード バランサーで確認します。次に、 Tomcat1をシャットダウンし、ページを更新します。リクエストはTomcat2によって処理されるようになりました (ロード バランサーによって確認されています)。ページが読み込まれると、Cookie をチェックします。新しい JSESSIONID を取得したので、もう一度ログインするよう求められます。

これまでのところ、認証されたセッションは認証されていないセッションのように複製されていないことがわかりました。これは正当な理由ですか、それとも構成の問題を示していますか?

4

1 に答える 1

0

sticky_session モードで実行していないため、worker.loadbalancer.sticky_session=1 で有効にすることができます

そしてより良いチェック:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

于 2011-04-01T00:39:54.957 に答える