# HAProxy: Der Hochleistungs-Dirigent für das Rechenzentrum
TL;DR / Management Summary HAProxy (High Availability Proxy) ist die weltweit führende Open-Source Software für Load Balancing und Proxy-Dienste. Sie wird von Giganten wie GitHub, Reddit und Stack Overflow genutzt. Ein Senior Admin nutzt HAProxy in OPNsense (Artikel 562) oder als dedizierte Instanz, um tausende TCP- und HTTP-Verbindungen pro Sekunde zu orchestrieren. Die Stärken liegen in der extremen Effizienz, den granularen Health Checks und dem mächtigen ACL-System zur Steuerung von Traffic-Flüssen.
# 1. Einführung & Architektur
Geschwindigkeit durch Fokus.
HAProxy ist ein Single-Threaded Event-Loop-Prozess (in modernen Versionen Multi-Threaded).
- Mode TCP (L4): Schnelles Weiterleiten ohne Inhaltsprüfung.
- Mode HTTP (L7): Intelligentes Routing basierend auf URLs, Cookies und Headern.
- Architektur:
- Frontend: Definiert IPs und Ports, auf denen HAProxy lauscht.
- Backend: Eine Gruppe von Servern (Pool), die den eigentlichen Dienst bereitstellen.
# 2. Kernfunktionen in der Praxis
Vom SSL-Schild zum Lastverteiler.
# 1. SSL/TLS Termination (Offloading)
HAProxy übernimmt die Verschlüsselung für alle internen Server.
- Vorteil: Zentrale Zertifikatsverwaltung (z.B. via ACME).
- Vorteil: Die Backend-Server (z.B. in Proxmox) sparen CPU-Last.
# 2. Intelligente Health Checks
HAProxy prüft nicht nur, ob ein Port offen ist.
- Aktion: Er erkennt, wenn ein Webserver zwar läuft, aber eine “500 Internal Server Error” Seite liefert, und nimmt ihn automatisch aus dem Pool.
# 3. Deep Dive: ACLs (Access Control Lists)
Die Logik des Proxys.
ACLs sind das mächtigste Werkzeug in HAProxy.
# Beispiel: Routing nach Domain
acl is_wiki hdr(host) -i wiki.firma.de
acl is_api path_beg /api
use_backend wiki_servers if is_wiki
use_backend api_cluster if is_api
- Nutzen: Sie können hunderte verschiedene Webdienste über eine einzige öffentliche IP-Adresse (Port 443) bereitstellen.
# 4. Day-2 Operations: Wartung & Draining
Abschalten ohne User-Impact.
Wenn Sie einen Backend-Server patchen müssen:
- Soft Stop (Draining): Markieren Sie den Server als
MAINT. - Wirkung: HAProxy schickt keine neuen User mehr an diesen Server, lässt bestehende Sessions aber zu Ende laufen.
- Ergebnis: Zero-Downtime Wartung für die Applikation.
# 5. Troubleshooting & “War Stories”
Wenn der Proxy den Dienst verweigert.
# Top 3 Fehlerbilder
-
Symptom: “503 Service Unavailable”.
- Ursache: Alle Backend-Server sind laut Health-Check
DOWN. - Lösung: Prüfen Sie, ob die Firewall am Backend-Server die IP des HAProxy erlaubt.
- Ursache: Alle Backend-Server sind laut Health-Check
-
Symptom: Unendliche Redirect-Schleifen.
- Ursache: HAProxy schickt HTTP an das Backend, das Backend will aber zwingend HTTPS erzwingen.
- Fix: Nutzen Sie den Header
X-Forwarded-Proto: httpsim Backend-Request.
-
Symptom: Hohe Latenz bei vielen SSL-Verbindungen.
- Lösung: Nutzen Sie CPUs mit AES-NI Unterstützung und optimieren Sie die
maxconnWerte in der globalen Sektion.
- Lösung: Nutzen Sie CPUs mit AES-NI Unterstützung und optimieren Sie die
# “War Story”: Die “Zombie” Sessions
Ein Unternehmen betrieb einen großen Terminalserver-Cluster via HAProxy (L4).
Das Ereignis: Die Mitarbeiter beschwerten sich über Verbindungsabbrüche.
Die Ursache: Der Admin hatte den Timeout für inaktive Verbindungen auf 30 Sekunden gelassen. Da RDP-Sitzungen oft lange Phasen ohne Traffic haben, kappte HAProxy die “toten” Leitungen.
Lösung: Erhöhung des timeout client und timeout server auf 8 Stunden für RDP-Traffic.
Lehre: Ein Loadbalancer muss das Verhalten der Applikation verstehen. Standard-Timeouts sind für Webseiten gut, für Fernwartung oder Datenbanken tödlich.
# 6. Monitoring & Reporting
Die Live-Statistik.
# HAProxy Stats Page
Aktivieren Sie die Statistik-Oberfläche (meist Port 9000).
- KPI:
Sessions per Second. - KPI:
Retries / Redispatches(Zeigt Instabilitäten im Backend an).
# 7. Fazit & Empfehlung
HAProxy ist die “Eierlegende Wollmilchsau” des Netzwerk-Admins.
- Empfehlung: Nutzen Sie HAProxy als zentralen Ingress-Controller für Ihr gesamtes Rechenzentrum.
- Wichtig: Sichern Sie die Statistik-Seite mit einem starken Passwort ab, da sie tiefe Einblicke in Ihre Infrastruktur gewährt.
# Anhang: Cheatsheet (Config Snippets)
| Sektion | Zweck | Beispiel |
|---|---|---|
global |
System-Limits | maxconn 4096 |
defaults |
Standardwerte | timeout connect 5s |
frontend |
IP/Port Bindung | bind *:443 ssl crt /etc/cert.pem |
backend |
Server Liste | server s1 10.0.0.1:80 check |