Load balancers help distribute traffic across a number of servers, effectively optimizing the performance of your web applications and web sites. Using load balancers avoids overloading any single resource and minimizes response times for processes. This ensures each user's experience is quick and reliable while lightening the load of your application's processes.
When integrating Distil into your load balancer-based infrastructure, there are a few items to keep in mind.
Distributing Traffic Based on Source IP
Some load balancers are configured to distribute traffic to upstream servers based on the source IP of the request. With Distil is enabled, this distribution will not behave as expected. This is because the source IP is no longer the browser IP, but the IP of the Distil public cloud server that delivered the request. The result is a poor distribution of the load.
In this case, the load balancer would either need to balance traffic by inspecting the HTTP header X-Forwarded-For (XFF) or change the routing mechanism.
Tracking Hash-based Persistence
Similar to IP based, some load balancers are configured to track IP hash-based persistence so that all requests from one IP are considered to be the same session. In this case, when Distil is enabled, end users may experience inconsistent behavior, such as seeing items in their cart that don’t belong or seeing items disappear from their cart.
Identifying Volume-based Attacks
Some load balancers are configured to identify volume-based attacks. In some cases, when Distil is enabled, end users are incorrectly being blocked by the load balancer. This is because the load balancer is interpreting the Distil’s remote address as the client address.
When your load balancer rejects these requests, these may be observable in the HTTP Upstream Error Report, showing as a high number of 502 errors.
If you have any questions at all or need assistance configuring your load balancers, feel free to reach out to us at firstname.lastname@example.org.