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
References
{{Reflist|30em}}
External links
- [https://www.haproxy.org/ HAProxy Open Source Website]
- [https://www.haproxy.com/ HAProxy Enterprise Website]
- [https://github.com/haproxy/wiki/wiki HAProxy Wiki on GitHub]
- [https://github.com/haproxy/haproxy/issues/ HAProxy issue tracker on GitHub]
Category:Free web server software
Category:Proxy server software for Linux
Category:Free software programmed in C