
HAProxy
HAProxy is a fast, reliable load balancer and reverse proxy for TCP/HTTP(S), with TLS termination, health checks, advanced routing, and built-in observability features.

HAProxy is a high-performance, event-driven load balancer and reverse proxy commonly used to front web applications and APIs. It provides Layer 4 (TCP) and Layer 7 (HTTP) traffic management with strong reliability, detailed control over routing, and production-grade operational tooling.
Key Features
- Layer 4 (TCP) and Layer 7 (HTTP) load balancing with multiple algorithms (e.g., round-robin, leastconn, hashing)
- Reverse proxy with advanced HTTP routing rules (ACLs, header/path-based routing, rewrites)
- Health checks (active/passive) with automatic failover and server draining
- TLS termination and SNI-based routing; certificate loading and TLS policy controls
- High availability patterns (multi-process/threading, seamless reloads, connection draining)
- Session persistence (stickiness) using cookies, source IP, or other keys
- Rate limiting, request/connection shaping, and basic DDoS/abuse mitigation primitives
- Built-in stats and administrative interface (stats page/CLI socket) plus Prometheus-style metrics support (via exporters/integrations)
Use Cases
- Fronting websites/APIs with HTTPS termination and path/host-based routing to multiple backends
- Highly available load balancing for microservices and internal TCP services (databases, message brokers)
- Edge proxy for gradual rollouts (canary), maintenance windows (draining), and traffic shaping
Limitations and Considerations
- Configuration is powerful but can be complex; many features are expressed via ACL/rules that require careful testing.
- Some advanced capabilities may require using HAProxy Enterprise add-ons in commercial contexts (depending on desired support/features).
HAProxy is widely deployed at scale due to its performance, stability, and deep traffic-control features. It fits well where you need fine-grained routing, reliable failover, and predictable behavior under heavy load, while remaining flexible enough for diverse TCP and HTTP workloads.