HAProxy is a free and open source software that provides a high availability load balancer and reverse proxy for TCP and HTTP-based applications that spreads requests across multiple servers. It is written in C and has a reputation for being fast and efficient (in terms of processor and memory usage).
HAProxy is used by a number of high-profile websites including GoDaddy, GitHub, Bitbucket, Stack Overflow, Reddit, Slack, Speedtest.net, Tumblr, Twitter and Tuenti and is used in the OpsWorks product from Amazon Web Services.
History
HAProxy was written in 2000 by Willy Tarreau, a core contributor to the Linux kernel, who still maintains the project.
In 2013, the company HAProxy Technologies, LLC was created. The company provides a commercial offering, HAProxy Enterprise and appliance-based application-delivery controllers named ALOHA.
Features
HAProxy has the following features:
Layer 4 (TCP) and Layer 7 (HTTP) load balancing
Multi-factor stickiness
URL rewriting
Rate limiting
SSL/TLS termination proxy
Gzip compression
Caching
PROXY Protocol support
Scriptable multi-layer Health checking
Connection and HTTP message logging
HTTP/2 support on both sides
HTTP/3 support
WebSocket (RFC6455 and RFC8441) UDP/TCP Syslog load-balancing and forwarding/transcribing (RFC3164 and RFC5424) Event-driven Multithreaded architecture Hitless reloads gRPC Support Lua and SPOE Support API Support Layer 4/7 Retries Simplified circuit breaking Advanced debugging and tracing facilities Distributed stick-tables for stats collection and DoS mitigation
HAProxy Community vs HAProxy Enterprise
HAProxy Enterprise Edition is an enterprise-class version of HAProxy that includes enterprise suite of add-ons, expert support, and professional services. It has some features backported from the HAProxy development branch.
ALOHA
HAProxy Technologies’ ALOHA is a plug-and-play load-balancing appliance that can be deployed in any environment. ALOHA provides a graphical interface and a templating system that can be used to deploy and configure the appliance.
Versions
HAProxy has had the following version releases:
Performance
Servers equipped with 6 to 8 cores generally achieve between 200,000 and 500,000 requests per second, and have no trouble saturating a 25 Gbit/s connection under Linux. 64-core ARM servers were shown to reach 2 million requests per second and 100 Gbit/s.