1

私は現在、ウェブサイトの国際化を行っており、jsessionIDs の周りでいくつかの問題に遭遇しました。mod_jk を介して複数の JBoss アプリ サーバー間で負荷を分散する Apache Web サーバーを使用しています。

デフォルトの GB URL でサイトにアクセスすると、専用の jboss アプリ サーバーで jsessionID が正しく作成されます。たとえばwww.mysite.com、 でセッションを作成しGB_Jbossます。

URL を に更新するとwww.mysite.com/fr、新しい jsessionID が に作成されFR_JBossます。

URL を に更新するとwww.mysite.com/us、新しい jsessionID が に作成されUS_JBossます。

ただし、URL を更新するたびに、常に元の jsessionID が表示されます。

これが理にかなっていると思いますか?これをApache経由で機能させる方法はありますか? それとも、これはロード バランサーでの負荷分散の問題ですか?

4

1 に答える 1

0

別の URI に対して新しいセッションを作成する理由を知りたいです。とにかく、私が考えることができるいくつかのオプション:

  1. セッションを生成した URI のエントリを Cookie に追加します。たとえば、yoursite/frが最初にセッションを取得した場合、それをクライアント Cookie に追加します。リクエストごとにフィルターを使用して、URI が Cookie で指定されたものと異なるかどうかを調べることができます。はいの場合、そのセッションを無効にして、ユーザー用に新しいセッションを作成します。
  2. サーバー側で、サイト URI とセッション ID のマッピングを持つシングルトン HashMap を維持します。サイト URI が各リクエストのセッション ID と一致しない場合 - セッションを無効にします。このアプローチの欠点は、別のサーバーへのフェイルオーバー後に HashMap が適切に機能するために、クラスター内のすべてのノード間で HashMap を複製する必要があることです。
于 2011-07-26T17:41:39.093 に答える