Apache balancing towards Weblogic backends, mod_wl vs mod_proxy_balancer

apache-2.4load balancingmod-proxyreverse-proxyweblogic

for a lot of years now, we have been using an Apache Server with Mod_wl plugin to balance sessions towards multiple backend Weblogic webservers.

Now after a a while we also started using the same Apache to reverse proxy towards other internal applciations.
So I am now wondering why are we even using mod_wl and not just the Apache Server his own mod_proxy & mod_proxy_balancer for the balancing to our own backend Weblogic webservers?

Is there any benefit to this proprietary plugin? Or was it that years ago the same wasn't as easy to achieve with just Apache Config?
I tried a setup without the Mod_wl plugin for some testing and it looks to be working just fine only for the session stickyness it seems I had to add a new cookie via the Apache as it's not working with our existing J2SESSIONID set by the Weblogics for some reason.

So the following

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>    

looks to do the same as this previous config using mod_wl:

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

This is of course a simplified example config.
So unsure to keep using the proprietary plugin as it's working, don't change a winning team? Or go to the more opensource Apache solution.

Best Answer

The weblogic plugin "talks" to the backend cluster and refreshes the list of available backends any member of the cluster reports, as in, you can have several new members of the cluster without having to touch the apache related config at all.

Oracle also advertises WLSRequest on as a more agile or less heavy way to specify a certain location reverse proxies to Weblogic than the "SetHandler" method.

Having said this, mod_wl is third party and until now it has proven issues with event mpm, as in, when you issue a graceful it will surely hang the used processes in an ending cyle of gracefully finishing until you issue a real restart, you can't also use maxconnectionsperchild or you will lose childs over time to the same affection (I think httpd devs are working around this in 2.4.33 version about to be released).

So, I would review the oracle docs and test both options, but lately I'm also inclined for the non-third party choice, that is, using mod_proxy.

I would be glad if you report back after you try.

Related Topic