HAProxy

{{Short description|Free and open-source proxy software}}

{{Infobox software

| name = HAProxy

| title =

| logo = haproxy-logo.png

| logo caption =

| logo_size =

| logo_alt =

| screenshot =

| caption =

| screenshot_size =

| screenshot_alt =

| collapsible =

| author = Willy Tarreau

| developer =

| discontinued =

| released = {{Start date and age|2001|12|16}}

| latest release version = {{wikidata|property|preferred|references|edit|Q5628948|P348|P548=Q2804309}}

| latest release date = {{wikidata|qualifier|preferred|single|Q5628948|P348|P577}}

| latest preview version = {{wikidata|property|preferred|references|edit|Q5628948|P348|P548=Q3295609}}

| latest preview date = {{wikidata|qualifier|preferred|single|Q5628948|P348|P548=Q3295609|P577}}

| programming language = C

| operating system = Linux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1–5.3), macOS, Cygwin

| platform =

| size =

| language =

| language count =

| language footnote =

| genre =

| license = GNU General Public License Version 2

| website = {{URL|https://www.haproxy.org/}}

}}

HAProxy is a free and open source software that provides a high availability load balancer and Proxy (forward proxy,{{cite web|url=https://www.haproxy.com/user-spotlight-series/haproxy-as-egress-controller|title=HAProxy as Forward Proxy}} reverse proxy) for TCP and HTTP-based applications that spreads requests across multiple servers.{{cite web |url=http://www.severalnines.com/resources/clustercontrol-mysql-haproxy-load-balancing-tutorial#what |title=MySQL Load Balancing with HAProxy |author= |year=2011 |publisher=Severalnines AB |accessdate=19 February 2013}} It is written in C{{cite web|url=http://freecode.com/projects/haproxy|accessdate=5 April 2013|title=HAProxy on Freecode}} and has a reputation for being fast and efficient (in terms of processor and memory usage).{{cite web|title=Nuts & Bolts: HAproxy|url=http://37signals.com/svn/posts/1073-nuts-bolts-haproxy|accessdate=8 April 2013}}

HAProxy is used by a number of high-profile websites including GoDaddy, GitHub, Bitbucket,{{cite web|url=https://www.youtube.com/watch?v=2ll2ER3wpus|accessdate=26 February 2015|title=The inner guts of Bitbucket|website=YouTube |date=24 July 2014 }} Stack Overflow,{{cite web|url=http://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/|accessdate=22 November 2013|title=What it takes to run Stack Overflow}} Reddit, Slack,{{cite news|url=https://slack.engineering/all-hands-on-deck-91d6986c3ee|title=All Hands on Deck|newspaper=Slack Engineering |date=29 June 2020 |access-date=2020-07-07}} Speedtest.net, Tumblr, Twitter{{cite web|url=http://haproxy.1wt.eu/they-use-it.html|accessdate=5 April 2013|title=HAProxy: they use it!}}{{cite web|url=http://lineofthought.com/tools/haproxy|access-date=5 April 2013|title=List of sites using HAProxy|url-status=dead|archive-url=https://web.archive.org/web/20130610013420/http://lineofthought.com/tools/haproxy|archive-date=10 June 2013}} and Tuenti{{cite web|url=https://vimeo.com/109608566|title=Tuenti+WebRTC (Voip2day 2014)}} and is used in the OpsWorks product from Amazon Web Services.{{cite web|title=HAProxy layer - AWS Opsworks|url=http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-load.html|accessdate=5 April 2013}}

History

HAProxy was written in 2000{{cite web|url=http://haproxy.1wt.eu/#desi|accessdate=5 April 2013|title=HAProxy: design choices and history}} by Willy Tarreau,{{cite web|url=http://1wt.eu/#wami|accessdate=5 April 2013|title=Willy Tarreau: About me}} a core contributor to the Linux kernel,{{cite web|url=https://lkml.org/lkml/2010/12/18/73 |title=LKML: Willy Tarreau: [ANNOUNCE] Linux 2.4.37.11 |accessdate=5 April 2013}} who still maintains the project.

In 2013, the company HAProxy Technologies, LLC was created.{{citation needed|date=July 2021}} 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{{Cite web|url=https://www.haproxy.com/blog/haproxy-1-9-has-arrived/|title=HAProxy 1.9 Has Arrived|last=Corbett|first=Daniel|date=2018-12-19|website=HAProxy Technologies|language=en-US|access-date=2019-01-22}} support on both sides
  • HTTP/3{{Cite web|url=https://www.haproxy.com/blog/announcing-haproxy-2-6#http3-over-quic|title= Announcing HAProxy 2.6|last=Ramirez|first=Nick|date=2022-05-31|website=HAProxy Technologies|language=en-US|access-date=2023-07-30}} support
  • WebSocket (RFC6455 and RFC8441)
  • UDP/TCP Syslog load-balancing and forwarding/transcribing (RFC3164 and RFC5424)
  • Event-driven Multithreaded architecture
  • Hitless reloads{{Cite web|url=https://www.haproxy.com/blog/hitless-reloads-with-haproxy-howto/|title=Hitless Reloads / Hot Restarts with HAProxy!|last=Mhedhbi|first=Moemen|date=2018-05-31|website=HAProxy Technologies|language=en-US|access-date=2019-01-22}}
  • gRPC Support{{Cite web|url=https://www.haproxy.com/blog/haproxy-1-9-2-adds-grpc-support/|title=HAProxy 1.9.2 Adds gRPC Support|last=Ramirez|first=Nick|date=2019-01-16|website=HAProxy Technologies|language=en-US|access-date=2019-01-22}}
  • 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.{{Cite press release|url=https://globenewswire.com/news-release/2018/05/02/1494698/0/en/HAProxy-Technologies-Announces-Improvements-to-Performance-Management-and-Security-for-Enterprises.html|title=HAProxy Technologies Announces Improvements to Performance, Management, and Security for Enterprises|last=|first=|date=2 May 2018|website=|archive-url=|archive-date=|url-status=|access-date=23 Oct 2018}}

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.{{Cite web|url=https://www.haproxy.com/products/aloha-hardware-appliance/|title=ALOHA Hardware Appliance Application Delivery Controller|last=|first=|date=|website=|archive-url=|archive-date=|url-status=|access-date=23 Oct 2018}}

Versions

HAProxy has had the following version releases:{{cite web |url=http://www.haproxy.org |access-date=15 December 2022|title=HAProxy}}

class="wikitable"

|+

!Version

!Release date

!End of life

{{Version |o |1.0}}

|2001-12-16

|2001-12-30

{{Version |o |1.1}}

|2002-03-10

|2006-01-29

{{Version |o |1.2}}

|2003-11-09

|2011-08-06

{{Version |o |1.3}}

|2006-06-29

|2016-03-14

{{Version |o |1.4}}

|2010-02-26

|2018-02-08

{{Version |o |1.5}}

|2014-06-19

|2020-01-10

{{Version |o |1.6}}

|2015-10-13

|2020-Q4

{{Version |o |1.7}}

|2016-11-25

|2021-Q4

{{Version |o |1.8}}

|2017-11-26

|2022-Q4

{{Version |o |1.9}}

|2018-12-19

|2020-Q2

{{Version |o |2.0}}

|2019-06-16

|2024-Q2

{{Version |o |2.1}}

|2019-11-25

|2021-Q1

{{Version |co |2.2 LTS}}

|2020-07-07

|2025-Q2 (critical fixes only)

{{Version |o |2.3}}

|2020-11-05

|2022-Q1

{{Version |co |2.4 LTS}}

|2021-05-14

|2026-Q2 (critical fixes only)

{{Version |o |2.5}}

|2021-11-23

|2023-Q1

{{Version |co |2.6 LTS}}

|2022-05-31

|2027-Q2

{{Version |o |2.7}}

|2022-12-01

|2024-Q1

{{Version |co |2.8 LTS}}

|2023-05-31

|2028-Q2

{{Version |co |2.9}}

|2023-12-05

|2025-Q1

{{Version |co |3.0 LTS}}

|2024-05-29

|2029-Q2

{{Version |c |3.1}}

|2024-11-26

|2026-Q1

colspan="3" | {{Version |lv |show=011101}}

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.{{URL|http://haproxy.org/#plat}} 64-core ARM servers were shown to reach 2 million requests per second and 100 Gbit/s.{{URL|https://www.haproxy.com/blog/haproxy-forwards-over-2-million-http-requests-per-second-on-a-single-aws-arm-instance/}}

Similar software

See also

{{Portal|Free and open-source software}}

References

{{Reflist|30em}}