Overview
Discover what makes HAProxy powerful
HAProxy is a mature, high‑performance TCP/HTTP load balancer that has become the de‑facto standard for routing traffic in production environments. At its core, it accepts incoming connections, evaluates a rich set of health checks and routing rules, and forwards traffic to one or more backend servers. The application is written in C for maximum efficiency and includes a lightweight monitoring subsystem that exposes metrics via an HTTP endpoint, enabling integration with Prometheus or other observability tools. HAProxy’s configuration language is declarative yet expressive, supporting per‑frontend and per‑backend sections, ACLs, stick tables, rate limiting, SSL off‑loading, and advanced routing such as HTTP/2 and QUIC.
Language & Runtime
Configuration Engine
Metrics & Stats
Extensibility
Overview
HAProxy is a mature, high‑performance TCP/HTTP load balancer that has become the de‑facto standard for routing traffic in production environments. At its core, it accepts incoming connections, evaluates a rich set of health checks and routing rules, and forwards traffic to one or more backend servers. The application is written in C for maximum efficiency and includes a lightweight monitoring subsystem that exposes metrics via an HTTP endpoint, enabling integration with Prometheus or other observability tools. HAProxy’s configuration language is declarative yet expressive, supporting per‑frontend and per‑backend sections, ACLs, stick tables, rate limiting, SSL off‑loading, and advanced routing such as HTTP/2 and QUIC.
Architecture
- Language & Runtime: C (single binary, no external runtime).
- Configuration Engine: A custom parser that compiles the config into an internal representation at startup, allowing zero‑downtime reloads via
SIGUSR2. - Metrics & Stats: Built‑in stats page (
/haproxy?stats) and optionalhaproxystatsdaemon for log aggregation. - Extensibility: Third‑party modules (e.g., HATop, Herald) are compiled as shared objects (
.so) and loaded at runtime, providing ncurses dashboards or load‑feedback agents. - Database: None; all state is kept in memory, making it ideal for stateless or sticky‑session scenarios.
- Operating System Support: Works on Linux, FreeBSD, OpenBSD, and macOS; distribution packages (Debian/Ubuntu, RHEL/CentOS, Alpine) and container images are available.
Core Capabilities
- Layer 4/7 Load Balancing: TCP, HTTP(S), WebSocket, gRPC, and QUIC support.
- Health Checks: HTTP/HTTPS, TCP, HTTP‑2, and custom scripts with configurable intervals and thresholds.
- SSL/TLS Termination & SNI: Automatic certificate rotation via ACME or manual PEM files.
- Advanced Routing: Path‑based, host‑based, cookie‑based routing; ACLs for granular traffic control.
- Rate Limiting & QoS: Stick tables with per‑IP or per‑session limits.
- Observability APIs: JSON‑based stats endpoint,
haproxy-runtime-apifor dynamic reconfiguration (available in newer releases). - Health‑Check Feedback: Herald can report backend health to external systems, enabling dynamic scaling.
Deployment & Infrastructure
HAProxy is a lightweight daemon that can be run on bare metal, VMs, or containers. Its single binary and minimal dependencies make it ideal for Kubernetes ingress controllers (e.g., kube‑haproxy), edge routing, or micro‑service meshes. For high availability, two HAProxy instances can be placed behind an external load balancer or run in a Kubernetes pod with statefulset and persistent config maps. The application scales linearly with CPU cores; a typical 4‑core host can comfortably handle millions of concurrent connections when tuned for optimal socket reuse and epoll.
Integration & Extensibility
- Runtime API: Exposes a UNIX socket for dynamic configuration changes without full reloads.
- Webhooks & Plugins: Custom shared libraries can hook into connection events, enabling integration with service discovery tools (Consul, etcd) or custom authentication backends.
- Metrics Exporters: The built‑in stats page can be scraped by Prometheus; custom exporters are available in the community.
- Configuration Management: Supports templating via tools like Consul KV, HashiCorp Vault for secrets, or GitOps pipelines that push new config files to the HAProxy container.
Developer Experience
The configuration syntax is concise yet powerful, and extensive documentation (including an official book, online tutorials, and a vibrant mailing list) lowers the learning curve. The community actively maintains forked modules and provides commercial support through HAProxy Technologies. The open‑source license (GPLv2) ensures that developers can modify the codebase for internal use, while commercial licenses offer enterprise features such as advanced session persistence and performance tuning. The tooling ecosystem—Docker images, Helm charts, and Terraform modules—facilitates rapid prototyping.
Use Cases
- Micro‑service Ingress: Route HTTP/HTTPS traffic to multiple services with path‑based routing and TLS termination.
- High‑Traffic Web Apps: Distribute load across thousands of backend servers, leveraging stick tables for session persistence.
- Edge Proxy: Act as a reverse proxy for CDN edge nodes, handling HTTP/2 and QUIC traffic.
- API Gateways: Enforce rate limits, authentication, and request shaping for public APIs.
- Hybrid Cloud: Bridge on‑premise services with cloud workloads, using HAProxy as the common traffic director.
Advantages
- Performance: C‑based implementation with zero‑copy sockets and efficient event loops.
- Flexibility: Supports both TCP and HTTP/2/QUIC, with fine‑grained ACLs and stick tables.
- Reliability: Mature codebase with a long history of stability; supports graceful reloads and health‑check driven failover.
- Licensing: Open source for internal use; commercial license adds enterprise features without vendor lock‑in.
- Ecosystem: Rich set of community modules, container images
Open SourceReady to get started?
Join the community and start self-hosting HAProxy today
Related Apps in cloud-platforms
Home Assistant
Open-source smart home hub for automation and integration
Caddy
Secure, auto‑TLS web server for every site
Traefik
Dynamic reverse proxy and load balancer for microservices
Pi‑hole
Network‑wide ad blocking with your own DNS server
CasaOS
Your Personal Cloud OS for Docker-based home servers
AdGuard Home
Network‑wide ad and tracker blocker
Weekly Views
Repository Health
Information
Explore More Apps
PocketBase
Lightweight Go backend in a single file
Canvas LMS
Open‑source learning platform for educators and students
Mastodon
Decentralized, real‑time social networking
Hi.Events
Sell tickets, manage events, and grow audiences all in one
WebHook Tester
Test and debug webhooks with instant, customizable URLs
Microweber
Drag‑and‑Drop CMS for websites and online stores