Apache mod_proxy_balancer configuration
In VirtualHost context:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/WhaleMap/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://whalemap-http>
Require all granted
BalancerMember http://192.168.128.200:3837 route=goldleaderA
BalancerMember http://192.168.128.203:3838 route=goldthree
BalancerMember http://192.168.128.202:3839 route=goldtwoC
BalancerMember http://192.168.128.201:3837 route=goldoneA
BalancerMember http://192.168.128.200:3838 route=goldleader
BalancerMember http://192.168.128.203:3839 route=goldthreeC
BalancerMember http://192.168.128.202:3837 route=goldtwoA
BalancerMember http://192.168.128.201:3838 route=goldone
BalancerMember http://192.168.128.200:3839 route=goldleaderC
BalancerMember http://192.168.128.203:3837 route=goldthreeA
BalancerMember http://192.168.128.202:3838 route=goldtwo
BalancerMember http://192.168.128.201:3839 route=goldoneC
# ProxySet lbmethod=byrequests
ProxySet stickysession=ROUTEID
</Proxy>
<Proxy balancer://whalemap-ws>
Require all granted
BalancerMember ws://192.168.128.200:3837 route=goldleaderA
BalancerMember ws://192.168.128.203:3838 route=goldthree
BalancerMember ws://192.168.128.202:3839 route=goldtwoC
BalancerMember ws://192.168.128.201:3837 route=goldoneA
BalancerMember ws://192.168.128.200:3838 route=goldleader
BalancerMember ws://192.168.128.203:3839 route=goldthreeC
BalancerMember ws://192.168.128.202:3837 route=goldtwoA
BalancerMember ws://192.168.128.201:3838 route=goldone
BalancerMember ws://192.168.128.200:3839 route=goldleaderC
BalancerMember ws://192.168.128.203:3837 route=goldthreeA
BalancerMember ws://192.168.128.202:3838 route=goldtwo
BalancerMember ws://192.168.128.201:3839 route=goldoneC
# ProxySet lbmethod=byrequests
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass /balancer-manager !
<Location /balancer-manager>
Require all granted
# Require host dal.ca
SetHandler balancer-manager
</Location>
RedirectMatch "/WhaleMap([^/]*)$" "/WhaleMap$1/"
RewriteEngine on
RewriteCond "%{HTTP:Upgrade}" =websocket
RewriteRule "." "-" [E=protocol:ws]
RewriteCond "%{HTTP:Upgrade}" !=websocket
RewriteRule "." "-" [E=protocol:http]
RewriteRule "/WhaleMap/(.*)" "balancer://whalemap-%{ENV:protocol}/WhaleMap/$1" [P,L]
RewriteRule "^/WhaleMap-(gold)*(leader|one|two|three)A/(.*)" "%{ENV:protocol}://gold$2.ocean.lan:3837/WhaleMap/$3" [P,L]
RewriteRule "^/WhaleMap-(gold)*(leader|one|two|three)B*/(.*)" "%{ENV:protocol}://gold$2.ocean.lan:3838/WhaleMap/$3" [P,L]
RewriteRule "^/WhaleMap-(gold)*(leader|one|two|three)C/(.*)" "%{ENV:protocol}://gold$2.ocean.lan:3839/WhaleMap/$3" [P,L]
#ProxyPass "/WhaleMap/" "balancer://whalemap/WhaleMap/"
ProxyPassReverse "/WhaleMap/" "balancer://whalemap-ws/WhaleMap/"
ProxyPassReverse "/WhaleMap/" "balancer://whalemap/WhaleMap/"