You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Christian Georg <ma...@christiangeorg.de> on 2017/03/26 09:43:10 UTC

[users@httpd] Balancing between members with identical route

Hi all,

we are using Apache as reverse proxy for TLS offloading and routing REST Requests. Our user data is split into two backend instances, where only one of the instances can serve the data for each user. Each instance is served by two (redundant) webservices and it does not matter which webservice for each instance is used.
Using the session ID for routing is working, however the proxy does not distribute requests between members with the identical route. Instead it is always using the first member with the route ID.
Is there any setup that distributes the requests with identical route IDs equally to all servers with the same route  to distribute the work load and have redundancy for each instance as well?

We are using:
Ubuntu 16.04
Server version: Apache/2.4.18 (Ubuntu)
Server built:   2016-07-14T12:32:26

Here is the balancer setup we use

Define CONNECTION_OPTIONS "loadfactor=100 min=10 max=300 smax=20 acquire=10000 connectiontimeout=10 disablereuse=off keepalive=on timeout=120 ttl=800 retry=20"
<Proxy "balancer://mywebservice">
   BalancerMember "ajp://192.168.200.10:8080" route=Instance1 ${CONNECTION_OPTIONS}
   BalancerMember "ajp://192.168.200.11:8080" route=Instance1 ${CONNECTION_ OPTIONS}

   BalancerMember "ajp:// 192.168.200.20:8080" route=Instance2 ${CONNECTION_ OPTIONS}
   BalancerMember "ajp:// 192.168.200.21:8080" route=Instance2 ${CONNECTION_ OPTIONS}

   ProxySet stickysession=ROUTEID
   ProxySet lbmethod=bybusyness
   ProxySet nofailover=On
</Proxy>

All requests with Instance1 end up on ajp://192.168.200.10:8080. The second server for this instance (ajp://192.168.200.11:8080) is not receiving a single request.
And identical for instance2 ajp://192.168.200.20:8080 is receiving all requests and server two (ajp://192.168.200.21:8080) is receiving none.

We are using "ProxySet nofailover" to ensure that requests to Instance1 will never end up on one of the servers of instance two and vice versa.

Any Ideas on how to deal with this?

Thanks

Chris