Forum Discussion

NGP_IT_66845's avatar
NGP_IT_66845
Icon for Nimbostratus rankNimbostratus
Mar 01, 2012

Is it possible to distribute multiple HTTP requests that use the same TCP connection?

We have a single client that is doing address validation. The address validation servers are located behind the F5 BigIP LTM. This client is making multiple HTTP requests a second over one TCP connection. The problem is that all of the requests are going to only one node in the Virtual Server due to the fact that the F5 BigIP LTM load balances at the TCP connection level by default. It seems that you can use a OneConnect profile along with an iRule to direct different types of requests to different pools (e.g. www.abc.com/foo1/ goes to pool1 and www.abc.com/foo2/ goes to pool2). Our problem is that all requests will look very similar.

 

 

 

Is there a way to distribute HTTP Requests evenly between all nodes in the Virtual Server even though those requests traverse the same TCP connection? We do not need persistence for this Virtual Server.

 

 

  • Hi NGT IT,

     

     

    If I am reading your question correctly you are wanting to know if multiple requests within the same TCP Connection can be evenly distributed.

     

     

    The answer to your question is yes, but the behavior that you get is depends upon the context that you are using it.

     

     

    If you have multiple request from the same client within a TCP Connection, they should all be pinned to the same server through the normal server affinity persistence behavior of the LTM. If you have multiple clients within the same TCP Connection, then the deeper inspection of each request that is performed by the OneConnect Profile will load balance them to different pool members.

     

     

    I would suggest reviewing the DevCentral Wiki Post for the ">OneConnect Profile. The behavior that I am describing is listed in this Wiki Entry.

     

     

     

    Without OneConnect enabled, persistence data is examined only in the first request of a Keep-Alive connection, so if multiple requests are sent on the same clientside Keep-Alive connection, LTM will persist them all to the same destination as the first unless a OneConnect profile is applied (even if logic contained in an iRule dictates otherwise).

     

     

     

    When using services like Akamai, where all of your connections appear to be coming from a single TCP Connection is where the OneConnect Profile really shines.

     

     

    Hope this helps.
  • Hi Michael,

     

     

    Well Is there any way to load balance multpile requests from the same client within a TCP connection? It looks like it is impossible with the oneconnect profile.

     

     

    Regards,
  • Hi Michael,

     

     

    Well Is there any way to load balance multpile requests from the same client within a TCP connection? It looks like it is impossible with the oneconnect profile.

     

     

    Regards,
  • You should be able to add a OneConnect profile to the VS and select round robin load balancing on the pool to load balance each HTTP request regardless of whether they're made on the same client TCP connection. Worst case, you could set the max reuse on the OneConnect profile to 0, but I don't think this should be necessary.

     

     

    Aaron