是否可以将 mod_jk 粘性会话信息复制到另一个 apache 以进行故障转移设置?
问题背后的想法是在一些tomcats前面设置两个带有粘性会话的apache。当一个 apache 失败时,另一个应该接管 mod_jk 会话信息,这样他就知道哪些请求服务于哪个 tomcat。
我知道另一种方法是在 tomcat 级别进行会话复制,而不是使用粘性会话,但目前这是不可能的。
是否可以将 mod_jk 粘性会话信息复制到另一个 apache 以进行故障转移设置?
问题背后的想法是在一些tomcats前面设置两个带有粘性会话的apache。当一个 apache 失败时,另一个应该接管 mod_jk 会话信息,这样他就知道哪些请求服务于哪个 tomcat。
我知道另一种方法是在 tomcat 级别进行会话复制,而不是使用粘性会话,但目前这是不可能的。
如果您的后端服务器(tomcat)是集群的,它们也应该复制会话。在 http 失败的情况下,与 1 个 http 节点的连接应该转到另一个节点。jsessionid 参数应该为 http / mod_jk 提供足够的信息以知道要路由到哪个节点(例如,jsessionid=lkj234lkj2ljk234lj.jvmRoute1 将告诉 mod_jk 这个会话是为名为 jvmRoute1 的工作程序到期的)。如果指定的 worker 不可用,mod_jk 应该路由到下一个 worker,它应该从缓存中检索 sesison。
即httpd服务器之间不需要复制,因为客户端cookie或包含jsessionid的URL包含路由信息。
应该不需要在 apache 节点之间复制任何东西,因为 mod_jk 的会话持久性是无状态的。
您需要在 Tomcat 的 server.xml 中设置 jvmRoute,它必须与您的 jk 工作人员的名称相匹配,由 mod_jk 中的平衡器使用。