Manage load balancers
A load balancer distributes traffic among pools according to pool health and traffic steering policies. Each load balancer is identified by its DNS hostname (lb.example.com
, dev.example.com
, etc.).
For more details about load balancers, refer to Load balancers.
Create a load balancer
To create a load balancer in the dashboard:
Go to Traffic > Load Balancing.
Select Create Load Balancer.
On the Hostname page:
- Enter a Hostname, which is the DNS name at which the load balancer is available. For more details on record priority, refer to DNS records for load balancing.
- Toggle the orange cloud icon to update the proxy mode, which affects how traffic is routed and which IP addresses are advertised.
- If you want session-based load balancing, toggle the Session Affinity switch.
Select Next.
On the Add a Pool page:
- Select one or more existing pools or create a new pool.
- If you are going to set traffic steering to Off, re-order the pools in your load balancer to adjust the fallback order.
- If needed, update the Fallback Pool.
- If you choose to set traffic steering to Random, you can set Weights (via the API) to your pools to determine the percentage of traffic sent to each pool.
Select Next.
On the Monitors page:
- Review the monitors attached to your pools.
- If needed, you can attach an existing monitor or create a new monitor.
Select Next.
On the Traffic Steering page, choose an option for Traffic steering and select Next.
On the Custom Rules page, select an existing rule or create a new rule.
Select Next.
On the Review page:
- Review your configuration and make any changes.
- Choose whether to Save as Draft or Save and Deploy.
For a full list of properties, refer to Create Load Balancer. If you need help with API authentication, refer to Cloudflare API documentation.
Requestcurl "https://api.cloudflare.com/client/v4/zones/{zone_id}/load_balancers" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{ "description": "Load Balancer for lb.example.com", "name": "lb.example.com", "enabled": true, "ttl": 30, "fallback_pool": "17b5962d775c646f3f9725cbc7a53df4", "default_pools": [ "17b5962d775c646f3f9725cbc7a53df4", "9290f38c5d07c2e2f4df57b1f61d4196", "00920f38ce07c2e2f4df50b1f61d4194" ], "proxied": true, "steering_policy": "random_steering", "session_affinity": "cookie", "session_affinity_attributes": { "samesite": "Auto", "secure": "Auto", "drain_duration": 100, "zero_downtime_failover": "sticky" }, "session_affinity_ttl": 5000, "adaptive_routing": { "failover_across_pools": true }, "location_strategy": { "prefer_ecs": "always", "mode": "resolver_ip" }, "random_steering": { "pool_weights": { "de90f38ced07c2e2f4df50b1f61d4194": 0.3, "9290f38c5d07c2e2f4df57b1f61d4196": 0.5 }, "default_weight": 0.2 }}'
The response contains the complete definition of the new load balancer.
Response{ "success": true, "errors": [], "messages": [], "result": { "id": "699d98642c564d2e855e9661899b7252", "created_on": "2021-01-01T05:20:00.12345Z", "modified_on": "2021-01-01T05:20:00.12345Z", "description": "Load Balancer for lb.example.com", "name": "lb.example.com", "enabled": true, "ttl": 30, "fallback_pool": "17b5962d775c646f3f9725cbc7a53df4", "default_pools": [ "17b5962d775c646f3f9725cbc7a53df4", "9290f38c5d07c2e2f4df57b1f61d4196", "00920f38ce07c2e2f4df50b1f61d4194" ], "proxied": true, "steering_policy": "random_steering", "session_affinity": "cookie", "session_affinity_attributes": { "samesite": "Auto", "secure": "Auto", "drain_duration": 100, "zero_downtime_failover": "sticky" }, "session_affinity_ttl": 5000, "random_steering": { "pool_weights": { "de90f38ced07c2e2f4df50b1f61d4194": 0.3, "9290f38c5d07c2e2f4df57b1f61d4196": 0.5 }, "default_weight": 0.2 } }
}
Sharing your load balancer with other sites
You can share your load balancer with other sites in your account by creating a canonical name (CNAME
) record. This is useful for sharing configurations with multiple other domains so you do not have to create new load balancers for each site.
You can also configure separate load balancers for each domain and reuse monitors and pools. This is especially useful for changing the failover order for different domains, such as when your example.co.uk
server has a different failover priority from example.com
or example.com.au
.
Edit a load balancer
To edit a load balancer in the dashboard:
- Go to Traffic > Load Balancing.
- On a specific load balancer, click Edit.
- While going through the creation workflow, update settings as needed.
- On the Review step, click Save.
Delete a load balancer
If you delete or disable a load balancer, your endpoint’s response to requests will depend on your existing DNS records.
To delete a load balancer in the dashboard:
- Go to Traffic > Load Balancing.
- On a specific load balancer, click Delete.
Set up alerts
You can configure alerts to receive notifications for changes in the health status of your pools or endpoints. Who is it for? Customers who want to be warned about changes in health status in their pools or origins. Other options / filters Available filters include: Included with Purchase of Load Balancing. What should you do if you receive one? Evaluate load balancing analytics to review changes in health status over time.Load Balancing Health Alert