apache - 将 apache 用作具有粘性 session 的负载平衡器 - 需要基于粘性 session 的负载平衡

标签 apache tomcat mod-proxy mod-proxy-balancer

我将 apache 用作具有粘性 session 处理的 LB(使用 2 个 tomcat 作为平衡器成员)。

配置如下。由我在 apache 级别完成 -

<Proxy balancer://mycluster>
    (...)
    ProxySet stickysession=JSESSIONID
    BalancerMember http://{ip/hostname of tomcat1 backed:port} route=tomcat1
    BalancerMember http://{ip/hostname of tomcat2 backed:port} route=tomcat2
</Proxy>

ProxyPass        /     “balancer://mycluster”
PorxyPassReverse /     “balancer://mycluster”

在 tomcat 级别定义 jvm 路由 -

(...)
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">         ##where the jvmroute should be the route value set at apache config.
(...)

tomcat 2 也定义相同

(...)
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">         ##where the jvmroute should be the route value set at apache config.
    (...)

一切正常,但此设置的主要缺点是如果 tomcat1 出现故障,则粘附到 tomcat1 的 session 也会终止并且不会路由到 tomcat2。

有什么方法可以将粘性 session 也复制到 tomcat2,或者只是如果 tomcat1 死了,那么 session 就会转移到 tomcat2,反之亦然?

最佳答案

“粘性 session ”的使用只是一种机制,用于在可能使用多个节点时确保对同一 session 的所有请求都转到同一节点。如果您想要 session 故障转移,您需要集群

有很多关于如何使用 Tomcat 进行集群的指南。关于Tomcat's Presentations Page也有几个介绍有关集群如何工作以及如何配置的背景信息。

请注意,您可能必须对应用程序进行一些更改才能使集群正常工作。

关于apache - 将 apache 用作具有粘性 session 的负载平衡器 - 需要基于粘性 session 的负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44114218/

相关文章:

apache - 缺少 SSL 支持的 cloudfoundry 构建包的 SSL 反向代理构建包?

apache - 在 WAMP 中制作漂亮的永久链接

php - Centos/PHP 升级后服务器宕机

Apache + 汤姆猫 : Using mod_proxy instead of AJP

apache - 如何向apache 2.4.27 ProxyPass添加查询参数?

php - Apache 2.4 VirtualHost 无法通过 "NO-IP"工作

java - TimerTask 在 Tomcat Servlet 中停止运行的原因可能是什么

java - Tomcat 忽略 post 参数请求

tomcat - 移动 Tomcat 根目录

apache - 我如何在 Apache 的 mod_proxy 后面使用密码保护应用程序?