Load balancing is defined as the methodical and efficient distribution of network or application traffic across multiple servers in a server farm. Each load balancer sits between client devices and backend servers, receiving and then distributing incoming requests to any available server capable of fulfilling them.
The underlying concept is simple but powerful. Imagine you’re working with a website that needs to serve a huge number of users. Currently, the domain points to the IP address of a single web server. Responding to each request consumes some fraction of the server’s resources. When the server is using all of its resources, it will either take longer to respond to requests or the requests will fail entirely and the user experience will suffer. You can add more RAM, more storage capacity, and, in some cases, additional CPU cores, but you can’t scale forever. Enter load balancers.
A load balancer acts as the “traffic cop” sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a new server is added to the server group, the load balancer automatically starts to send requests to it.
A load balancer performs the following functions:
- Distributes client requests or network load efficiently across multiple servers
- Ensures high availability and reliability by sending requests only to servers that are online
- Provides the flexibility to add or subtract servers as demand dictates
Load balancing offers many benefits including reduced downtime, redundancy, scalability, flexibility, efficiency, as well as global server load balancing.
Load balancing can be performed at various layers in the Open Systems Interconnection (OSI) Reference Model for networking.
Layer 4 (L4) load balancers work at the transport level. That means they can make routing decisions based on the TCP or UDP ports that packets use along with their source and destination IP addresses. L4 load balancers perform Network Address Translation but do not inspect the actual contents of each packet. Layer 7 (L7) load balancers act at the application level, the highest in the OSI model. They can evaluate a wider range of data than L4 counterparts, including HTTP headers and SSL session IDs, when deciding how to distribute requests across the server farm.
L7 load balancing is more CPU‑intensive than packet‑based L4 load balancing, but rarely causes degraded performance on a modern server. L7 load balancing enables the load balancer to make smarter load‑balancing decisions, and to apply optimizations and changes to the content.
Load balancers can be hardware-based or software-based.
The ratings chart below summarizes our verdict. Only free and open source software is eligible for inclusion here.
Let’s explore the 13 load balancers at hand. Click the links in the table below to learn more about each load balancer.
|Traefik||Modern HTTP reverse proxy and load balancer|
|HAProxy||High availability layer 7 load balancer and proxy server for TCP and HTTP|
|Cilium||eBPF-based Networking, Observability, Security|
|nginx||Includes a L7 load balancer|
|RoadRunner||High-performance PHP application server, load balancer, and process manager|
|fabio||Fast, modern, zero-conf load balancing HTTP(S) and TCP router|
|BFE||Modern L7 load balancer|
|Seesaw||Linux Virtual Server (LVS) based load balancing platform. L4 load balancer|
|nuster||High-performance HTTP proxy cache server and HTTP/TCP load balancer|
|gobetween||Modern and minimalistic L4 load balancer and reverse-proxy|
|GLB Director||Set of stateless L4 load balancer servers|
|Zevenet||Multilayer open source load balancer with support for L3, L4 and L7|
|Balance||Generic TCP proxy with round robin load balancing and failover capabilities|
This article has been revamped in line with our recent announcement.
|Read our complete collection of recommended free and open source software. Our curated compilation covers all categories of software.
The software collection forms part of our series of informative articles for Linux enthusiasts. There are hundreds of in-depth reviews, open source alternatives to proprietary software from large corporations like Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.
There are also fun things to try, hardware, free programming books and tutorials, and much more.