Software:HAProxy

From HandWiki
Short description: Free and open-source proxy software
HAProxy
Haproxy-logo.png
Original author(s)Willy Tarreau
Initial releaseDecember 16, 2001; 22 years ago (2001-12-16)
Written inC
Operating systemLinux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1–5.3), macOS, Cygwin
LicenseGNU General Public License Version 2
Websitewww.haproxy.org

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.[1] It is written in C[2] and has a reputation for being fast and efficient (in terms of processor and memory usage).[3]

HAProxy is used by a number of high-profile websites including GoDaddy, GitHub, Bitbucket,[4] Stack Overflow,[5] Reddit, Slack,[6] Speedtest.net, Tumblr, Twitter[7][8] and Tuenti[9] and is used in the OpsWorks product from Amazon Web Services.[10]

History

HAProxy was written in 2000[11] by Willy Tarreau,[12] a core contributor to the Linux kernel,[13] who still maintains the project.

In 2013, the company HAProxy Technologies, LLC was created.[citation needed] 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[14] support on both sides
  • HTTP/3[15] support
  • WebSocket (RFC6455 and RFC8441)
  • UDP/TCP Syslog load-balancing and forwarding/transcribing (RFC3164 and RFC5424)
  • Event-driven Multithreaded architecture
  • Hitless reloads[16]
  • gRPC Support[17]
  • 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.[18]

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.[19]

Versions

HAProxy has had the following version releases:[20]

Version Release date End of life
1.0 2001-12-16 2001-12-30
1.1 2002-03-10 2006-01-29
1.2 2003-11-09 2011-08-06
1.3 2006-06-29 2016-03-14
1.4 2010-02-26 2018-02-08
1.5 2014-06-19 2020-01-10
1.6 2015-10-13 2020-Q4
1.7 2016-11-25 2021-Q4
1.8 LTS 2017-11-26 2022-Q4
1.9 2018-12-19 2020-Q2
2.0 LTS 2019-06-16 2024-Q2 (critical fixes only)
2.1 2019-11-25 2021-Q1
2.2 LTS 2020-07-07 2025-Q2 (LTS)
2.3 2020-11-05 2022-Q1
2.4 LTS 2021-05-14 2026-Q2 (LTS)
2.5 2021-11-23 2023-Q1 (stable)
2.6 LTS 2022-05-31 2027-Q2 (LTS)
2.7 2022-12-01 2024-Q1 (stable)
2.8 LTS 2023-05-31 2028-Q2 (LTS)
2.9 TBA (~2023-Q4) 2025-Q1 (dev » stable)
{{{2}}}

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.[21] 64-core ARM servers were shown to reach 2 million requests per second and 100 Gbit/s.[22]

Similar software

See also

References

  1. "MySQL Load Balancing with HAProxy". Severalnines AB. 2011. http://www.severalnines.com/resources/clustercontrol-mysql-haproxy-load-balancing-tutorial#what. Retrieved 19 February 2013. 
  2. "HAProxy on Freecode". http://freecode.com/projects/haproxy. Retrieved 5 April 2013. 
  3. "Nuts & Bolts: HAproxy". http://37signals.com/svn/posts/1073-nuts-bolts-haproxy. Retrieved 8 April 2013. 
  4. "The inner guts of Bitbucket". https://www.youtube.com/watch?v=2ll2ER3wpus. Retrieved 26 February 2015. 
  5. "What it takes to run Stack Overflow". http://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/. Retrieved 22 November 2013. 
  6. "All Hands on Deck". Slack Engineering. 29 June 2020. https://slack.engineering/all-hands-on-deck-91d6986c3ee. 
  7. "HAProxy: they use it!". http://haproxy.1wt.eu/they-use-it.html. Retrieved 5 April 2013. 
  8. "List of sites using HAProxy". http://lineofthought.com/tools/haproxy. 
  9. "Tuenti+WebRTC (Voip2day 2014)". https://vimeo.com/109608566. 
  10. "HAProxy layer - AWS Opsworks". http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-load.html. Retrieved 5 April 2013. 
  11. "HAProxy: design choices and history". http://haproxy.1wt.eu/#desi. Retrieved 5 April 2013. 
  12. "Willy Tarreau: About me". http://1wt.eu/#wami. Retrieved 5 April 2013. 
  13. "LKML: Willy Tarreau: [ANNOUNCE Linux 2.4.37.11"]. https://lkml.org/lkml/2010/12/18/73. Retrieved 5 April 2013. 
  14. Corbett, Daniel (2018-12-19). "HAProxy 1.9 Has Arrived" (in en-US). https://www.haproxy.com/blog/haproxy-1-9-has-arrived/. 
  15. Ramirez, Nick (2022-05-31). "Announcing HAProxy 2.6" (in en-US). https://www.haproxy.com/blog/announcing-haproxy-2-6#http3-over-quic. 
  16. Mhedhbi, Moemen (2018-05-31). "Hitless Reloads / Hot Restarts with HAProxy!" (in en-US). https://www.haproxy.com/blog/hitless-reloads-with-haproxy-howto/. 
  17. Ramirez, Nick (2019-01-16). "HAProxy 1.9.2 Adds gRPC Support" (in en-US). https://www.haproxy.com/blog/haproxy-1-9-2-adds-grpc-support/. 
  18. "HAProxy Technologies Announces Improvements to Performance, Management, and Security for Enterprises" (Press release). 2 May 2018. Retrieved 23 Oct 2018.
  19. "ALOHA Hardware Appliance Application Delivery Controller". https://www.haproxy.com/products/aloha-hardware-appliance/. 
  20. "HAProxy". http://www.haproxy.org. 
  21. haproxy.org#plat
  22. www.haproxy.com/blog/haproxy-forwards-over-2-million-http-requests-per-second-on-a-single-aws-arm-instance/

External links