# HAProxy

HAProxy is a free and open source software that provides a high availability load balancer and Proxy (forward proxy, 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:
| Version | Release date | End of life |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.0" | Old version, not maintained: 1.0 | 2001-12-16 | 2001-12-30 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.1" | Old version, not maintained: 1.1 | 2002-03-10 | 2006-01-29 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.2" | Old version, not maintained: 1.2 | 2003-11-09 | 2011-08-06 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.3" | Old version, not maintained: 1.3 | 2006-06-29 | 2016-03-14 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.4" | Old version, not maintained: 1.4 | 2010-02-26 | 2018-02-08 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.5" | Old version, not maintained: 1.5 | 2014-06-19 | 2020-01-10 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.6" | Old version, not maintained: 1.6 | 2015-10-13 | 2020-Q4 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.7" | Old version, not maintained: 1.7 | 2016-11-25 | 2021-Q4 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.8" | Old version, not maintained: 1.8 | 2017-11-26 | 2022-Q4 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.9" | Old version, not maintained: 1.9 | 2018-12-19 | 2020-Q2 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.0" | Old version, not maintained: 2.0 | 2019-06-16 | 2024-Q2 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.1" | Old version, not maintained: 2.1 | 2019-11-25 | 2021-Q1 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="2.2 LTS" | Old version, still maintained: 2.2 LTS | 2020-07-07 | 2025-Q2 (critical fixes only) |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.3" | Old version, not maintained: 2.3 | 2020-11-05 | 2022-Q1 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="2.4 LTS" | Old version, still maintained: 2.4 LTS | 2021-05-14 | 2026-Q2 (critical fixes only) |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.5" | Old version, not maintained: 2.5 | 2021-11-23 | 2023-Q1 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="2.6 LTS" | Old version, still maintained: 2.6 LTS | 2022-05-31 | 2027-Q2 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.7" | Old version, not maintained: 2.7 | 2022-12-01 | 2024-Q1 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="2.8 LTS" | Old version, still maintained: 2.8 LTS | 2023-05-31 | 2028-Q2 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="2.9" | Old version, still maintained: 2.9 | 2023-12-05 | 2025-Q1 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="3.0 LTS" | Old version, still maintained: 3.0 LTS | 2024-05-29 | 2029-Q2 |
| class="templateVersion c swatch-latest" style="color: var(--color-base, #202122); " title="Latest version" data-sort-value="3.1" | Latest version: 3.1 | 2024-11-26 | 2026-Q1 |
| Legend:Old version, not maintainedOld version, still maintainedLatest versionLatest preview versionFuture version |||

## 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.

## Similar software

* Nginx
* Gearman
* Pound
* Varnish