HAProxy logo

HAProxy

High-performance reverse proxy for HTTP and TCP traffic

HAProxy delivers ultra‑fast, reliable reverse‑proxy, load‑balancing and high‑availability for HTTP, HTTPS, TCP, and HTTP/2 applications, with extensive documentation and active community support.

HAProxy banner

Overview

Overview

HAProxy is a proven reverse‑proxy and load‑balancer that handles both Layer 4 (TCP) and Layer 7 (HTTP/HTTPS) traffic. It is designed for high‑throughput environments, offering features such as health checks, stick tables, and support for modern protocols like HTTP/2, TLS 1.3, and IPv6.

Who It Serves & How to Deploy

Network engineers, DevOps teams, and enterprises that need fine‑grained control over traffic distribution use HAProxy to achieve high availability and resilience. Deployment can be done from source using the provided INSTALL guide, or via pre‑built packages listed on the project wiki. Configuration is text‑based, allowing version‑controlled management, while runtime control is available through a management socket, CLI tools, and Lua/SPOE extensions. Comprehensive documentation—both HTML and plain‑text—covers everything from quick introductions to deep internals, and community channels (mailing list, discourse, Slack, IRC) provide real‑time assistance.

Highlights

Layer 4 and Layer 7 load balancing
Support for HTTP/2, TLS 1.3, and IPv6
Built‑in health checks and stick tables
Extensible via Lua scripts and SPOE engine

Pros

  • Proven performance at millions of requests per second
  • Rich feature set for both TCP and HTTP workloads
  • Mature, battle‑tested codebase written in C
  • Active community with extensive documentation

Considerations

  • Configuration syntax can be complex for newcomers
  • No official graphical UI; management is CLI/API based
  • Advanced features may require deep networking knowledge
  • License information is not clearly stated in repository metadata

Managed products teams compare with

When teams consider HAProxy, these hosted platforms usually appear on the same shortlist.

AWS Elastic Load Balancing logo

AWS Elastic Load Balancing

Managed load balancer service that automatically distributes incoming traffic across multiple targets to improve availability

Azure Load Balancer logo

Azure Load Balancer

Fully managed layer-4 load balancing service for distributing network traffic across multiple VMs or services in Azure

Fastly Load Balancing logo

Fastly Load Balancing

Edge load balancing with real-time health checks and failover.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Enterprises needing high‑availability load balancing
  • Web services handling high traffic volumes
  • Operators requiring fine‑grained health‑check control
  • Teams comfortable with text‑based configuration and version control

Not ideal when

  • Small projects preferring plug‑and‑play SaaS load balancers
  • Users who require a graphical configuration interface
  • Environments that mandate a permissive open‑source license
  • Teams without Linux/Unix networking expertise

How teams use it

API gateway for microservices

Distributes incoming API requests across multiple service instances, ensuring low latency, automatic failover, and consistent throughput.

SSL termination for web farms

Offloads TLS encryption from backend servers, centralizing certificate management and reducing CPU load on application nodes.

DDoS mitigation front‑end

Filters malicious traffic using rate‑limiting and ACLs before it reaches critical infrastructure, improving resilience against attacks.

Hybrid TCP/HTTP load balancing

Handles mixed workloads—such as database connections and web traffic—through a single, unified proxy layer.

Tech snapshot

C96%
C++2%
Shell1%
Makefile1%
Lua1%
Python1%

Tags

tls13high-performanceddos-mitigationhttpcachefastcgiipv6load-balancerhttpsproxy-protocolhigh-availabilityproxyhttp2reverse-proxycachinghaproxy

Frequently asked questions

What protocols does HAProxy support?

HAProxy supports TCP, HTTP, HTTPS, HTTP/2, and can operate over IPv4 and IPv6.

How is HAProxy configured?

Configuration is done via a plain‑text file (`haproxy.cfg`) that can be reloaded without dropping connections.

Can HAProxy be extended?

Yes, through Lua scripts and the SPOE (Stream Processing Offload Engine) for custom processing.

Where can I find documentation?

Documentation is available in HTML and text formats in the `doc/` directory and on the project wiki.

What community channels are available for help?

Support is provided via a mailing list, discourse forum, Slack, and IRC channels.

Project at a glance

Active
Stars
6,268
Watchers
6,268
Forks
898
Repo age7 years old
Last commityesterday
Primary languageC

Last synced 12 hours ago