Zum Inhalt springen

HAProxy auf Debian: Traffic sortieren ohne Load-Balancer-Voodoo

6. Oktober 2026 durch
HAProxy auf Debian: Traffic sortieren ohne Load-Balancer-Voodoo
Torben Belz

Wenn zwei Webserver denselben Dienst ausliefern, aber der Traffic trotzdem sauber verteilt werden soll, ist HAProxy der klassische Schraubenschlüssel im Admin-Werkzeugkasten. Kein Glitzer, kein Kubernetes-Nebelwerfer, einfach ein schneller Load Balancer, der macht, was er soll.

Wir bauen hier ein simples Setup auf Debian: HAProxy vorne, zwei Backend-Webserver hinten, Health Checks aktiv und ein Stats-Dashboard für den schnellen Blick in den Maschinenraum.

Installation auf Debian

Auf einem frischen Debian-System ist HAProxy schnell installiert:

sudo apt update
sudo apt install haproxy

Danach prüfen wir kurz, ob der Dienst existiert und systemd ihn nicht beleidigt anschaut:

systemctl status haproxy

Falls HAProxy noch nicht automatisch startet:

sudo systemctl enable haproxy

Unser Beispiel-Setup

Wir nehmen folgende Struktur:

- HAProxy: 192.168.10.10

- Webserver 1: 192.168.10.21:80

- Webserver 2: 192.168.10.22:80

HAProxy lauscht auf Port 80 und verteilt Requests per Round Robin. Zusätzlich prüfen Health Checks, ob die Backends noch leben. Wenn ein Server wegkippt, bekommt er keinen Traffic mehr. Genau so wollen wir das. Zombies gehören in Filme, nicht in den Request-Pfad.

HAProxy konfigurieren

Die zentrale Datei ist /etc/haproxy/haproxy.cfg. Vorher wie immer: Backup machen. Ja, auch wenn du „nur kurz was änderst“.

sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

Dann konfigurieren wir HAProxy:

# /etc/haproxy/haproxy.cfg
global
    log /dev/log local0
    log /dev/log local1 notice
    daemon
    maxconn 2048

defaults
    log global
    mode http
    option httplog
    option dontlognull
    timeout connect 5s
    timeout client 50s
    timeout server 50s

frontend http_frontend
    bind *:80
    default_backend web_backend

backend web_backend
    balance roundrobin
    option httpchk GET /
    http-check expect status 200
    server web01 192.168.10.21:80 check
    server web02 192.168.10.22:80 check

listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats refresh 10s
    stats auth admin:SuperGeheimAberBitteAendern

Kurz zerlegt: frontend nimmt Traffic entgegen. backend definiert die Zielserver. balance roundrobin verteilt gleichmäßig. check aktiviert Health Checks pro Server. Mit option httpchk GET / fragt HAProxy regelmäßig die Startseite ab. Kommt kein 200, wird der Server als kaputt markiert.

Das Stats-Dashboard hängt auf Port 8404 unter /stats. Absichern nicht vergessen. Das Beispiel-Passwort ist natürlich nur Deko mit Warnschild.

Konfiguration testen und Dienst neu laden

Bevor wir HAProxy neu starten und uns selbst aussperren, testen wir die Config:

sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Wenn Configuration file is valid erscheint, darf systemd ran:

sudo systemctl reload haproxy

Reload reicht meistens, weil HAProxy dabei die Konfiguration übernimmt, ohne bestehende Verbindungen unnötig zu zerlegen.

Funktion testen

Vom Client aus:

curl -I http://192.168.10.10

Wenn deine Webserver unterschiedliche Testseiten haben, siehst du beim mehrfachen Aufruf die Verteilung:

for i in {1..10}; do curl -s http://192.168.10.10; echo; done

Das Dashboard erreichst du unter:

curl -I http://192.168.10.10:8404/stats

Im Browser ist es natürlich hübscher. Dort siehst du Backend-Status, Sessions, Response-Zeiten und ob ein Server gerade beleidigt in der Ecke liegt.

Kleine Firewall-Erinnerung

Falls ufw aktiv ist:

sudo ufw allow 80/tcp
sudo ufw allow from 192.168.10.0/24 to any port 8404 proto tcp

Port 8404 sollte nicht im Internet herumstehen. Stats-Dashboards sind wie Serverräume: praktisch, aber bitte nicht für Laufkundschaft offenlassen.

Fazit

HAProxy auf Debian ist angenehm unspektakulär. Installieren, Frontend definieren, Backends eintragen, Health Checks aktivieren, Stats anschalten. Danach weißt du, wohin dein Traffic läuft und welcher Server gerade schlappmacht. Für klassische Web-Setups ist das immer noch eine robuste, schnelle und sehr gut debuggbare Lösung. Kein Magie-Nebel. Nur sauberes Load Balancing.

HAProxy auf Debian: Traffic sortieren ohne Load-Balancer-Voodoo
Torben Belz 6. Oktober 2026
Diesen Beitrag teilen