Apache mod_jkセッションデータを複製する方法

Apache mod_jkセッションデータを複製する方法

フェイルオーバー設定のために、mod_jk スティッキーセッション情報を別の Apache に複製することは可能ですか?

質問の背後にある考え方は、いくつかの Tomcat の前にスティッキー セッションを持つ 2 つの Apache を設定することです。1 つの Apache に障害が発生した場合、もう 1 つの Apache が mod_jk セッション情報を引き継ぐため、どのリクエストをどの Tomcat に処理するかがわかります。

代替案としては、Tomcat レベルでのセッション レプリケーションとスティッキー セッションを使用しないことが挙げられますが、現時点ではこれは不可能です。

答え1

バックエンド サーバー (tomcat) がクラスター化されている場合は、セッションも複製する必要があります。http 障害が発生した場合、1 つの http ノードへの接続は別のノードに送られます。jsessionid パラメーターは、http / mod_jk に、どのノードにルーティングするかを知るのに十分な情報を提供する必要があります (例: jsessionid=lkj234lkj2ljk234lj.jvmRoute1 は、このセッションが jvmRoute1 という名前のワーカーに必要であることを mod_jk に伝えます)。指定されたワーカーが使用できない場合、mod_jk は次のワーカーにルーティングし、キャッシュからセッションを取得します。

つまり、クライアント側の Cookie または jsessionid を含む URL にルーティング情報が含まれているため、httpd サーバー間でのレプリケーションは必要ありません。

答え2

mod_jk のセッション永続性はステートレスに動作するため、Apache ノード間で何かを複製する必要はありません。

Tomcat の server.xml で jvmRoute を設定する必要があり、これは mod_jk のバランサーによって使用される jk ワーカーの名前と一致する必要があります。

関連情報