Apache 針對 Weblogic 後端進行平衡,mod_wl 與 mod_proxy_balancer

Apache 針對 Weblogic 後端進行平衡,mod_wl 與 mod_proxy_balancer

多年來,我們一直使用具有 Mod_wl 插件的 Apache 伺服器來平衡多個後端 Weblogic Web 伺服器的會話。

過了一段時間,我們也開始使用相同的 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。

如果您嘗試後回來報告,我會很高興。

相關內容