Apache 平衡 Weblogic 后端,mod_wl 与 mod_proxy_balancer

Apache 平衡 Weblogic 后端,mod_wl 与 mod_proxy_balancer

多年来,我们一直在使用带有 Mod_wl 插件的 Apache 服务器来平衡多个后端 Weblogic 网络服务器的会话。

现在过了一段时间,我们也开始使用相同的 Apache 来反向代理其他内部应用程序。所以我现在想知道为什么我们甚至使用 mod_wl 而不是 Apache 服务器自己的 mod_proxy 和 mod_proxy_balancer 来平衡我们自己的后端 Weblogic web 服务器?

这个专有插件有什么好处吗?还是说几年前仅使用 Apache Config 很难实现同样的效果?我尝试了不带 Mod_wl 插件的设置进行了一些测试,它似乎工作得很好,只是对于会话粘性,似乎我不得不通过 Apache 添加一个新 cookie,因为它由于某种原因无法与 Weblogics 设置的现有 J2SESSIONID 一起使用。

因此

Header add Set-Cookie "J2ROUTE=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
            <Proxy balancer://backends>
                BalancerMember http://localhost:9001 route=1
                BalancerMember http://localhost:9002 route=2            
                ProxySet stickysession=J2ROUTE
            </Proxy>    

看起来与使用 mod_wl 的先前配置执行的操作相同:

 SetHandler weblogic-handler
 WebLogicCluster localhost:9001,localhost:9002
 WLCookieName J2SESSIONID

这当然是一个简化的示例配置。所以不确定是否继续使用专有插件,因为它正在工作,不要更换获胜的团队?或者转向更开源的 Apache 解决方案。

答案1

weblogic 插件与后端集群“对话”,并刷新集群报告的任何成员可用的后端列表,也就是说,您可以拥有多个新的集群成员,而无需触及 apache 相关的配置。

Oracle 还宣传 WLSRequest 是一种比“SetHandler”方法更灵活、更简单的指定特定位置反向代理到 Weblogic 的方法。

话虽如此,mod_wl 是第三方的,到目前为止,它已经证明了事件 mpm 的问题,例如,当您发出一个优雅时,它肯定会将使用的进程挂在优雅完成的结束循环中,直到您发出真正的重启,您也不能使用 maxconnectionsperchild ,否则您会随着时间的推移而失去子进程(我认为 httpd 开发人员正在即将发布的 2.4.33 版本中解决这个问题)。

因此,我会查看 oracle 文档并测试这两个选项,但最近我也倾向于非第三方选择,即使用 mod_proxy。

如果您尝试后能报告情况我将非常高兴。

相关内容