如何复制 apache mod_jk 会话数据

如何复制 apache mod_jk 会话数据

是否可以将 mod_jk 粘性会话信息复制到另一个 apache 以进行故障转移设置?

该问题背后的想法是在某些 tomcat 前面设置两个具有粘性会话的 apache。当一个 apaache 出现故障时,另一个应该接管 mod_jk 会话信息,以便他知道将哪些请求提供给哪个 tomcat。

我知道另一种方法是在 tomcat 级别进行会话复制而不是使用粘性会话,但目前还不可能。

答案1

如果您的后端服务器 (tomcat) 是集群式的,它们也应该复制会话。如果发生 http 故障,与 1 个 http 节点的连接应该转到另一个节点。jsessionid 参数应该为 http / mod_jk 提供足够的信息,以便知道要路由到哪个节点(例如 jsessionid=lkj234lkj2ljk234lj.jvmRoute1 将告诉 mod_jk,此会话应由名为 jvmRoute1 的 worker 处理)。如果指定的 worker 不可用,mod_jk 应该路由到下一个 worker,该 worker 应该从缓存中检索会话。

即 httpd 服务器之间不需要复制,因为包含 jsessionid 的客户端 cookie 或 URL 包含路由信息。

答案2

没有必要在 apache 节点之间复制任何内容,因为 mod_jk 的会话持久性是无状态工作的。

您需要在 Tomcat 的 server.xml 中设置 jvmRoute,并且它必须与 mod_jk 中的平衡器使用的 jk 工作者的名称相匹配。

相关内容