Load Balancer Setup: HAProxy installieren und konfigurieren

Ein Load Balancer sorgt dafür, dass eingehende Anfragen auf mehrere Server verteilt werden, um die Last zu verteilen, die Performance zu verbessern und die Ausfallsicherheit zu erhöhen. HAProxy ist ein weit verbreiteter, leistungsfähiger Layer-4 und Layer-7 Load Balancer für Linux, der sich sowohl für kleine Homelabs als auch für produktive Unternehmensumgebungen eignet.

HAProxy installieren

Auf Debian- oder Ubuntu-Systemen erfolgt die Installation über APT:

sudo apt update
sudo apt install haproxy

Auf RHEL/CentOS-Systemen nutzen Sie DNF oder YUM:

sudo dnf install haproxy
# oder
sudo yum install haproxy

Grundkonfiguration von HAProxy

Die zentrale Konfigurationsdatei befindet sich unter /etc/haproxy/haproxy.cfg. Ein einfaches Setup für HTTP-Load-Balancing könnte so aussehen:

global
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms

Frontend und Backend einrichten

frontend http_front
    bind *:80
    default_backend web_servers

backend web_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check

Erläuterung der wichtigsten Parameter

  • frontend: Empfangspunkt für eingehende Verbindungen
  • bind: IP-Adresse und Port, auf dem HAProxy lauscht
  • default_backend: Standard-Backend, an das die Anfragen weitergeleitet werden
  • backend: Definition der Gruppe von Servern, die die Anfragen bearbeiten
  • balance: Load-Balancing-Methode (z. B. roundrobin, leastconn)
  • server: Zielserver mit IP, Port und optionalem Health-Check (check)

Health Checks konfigurieren

Mit Health Checks prüft HAProxy regelmäßig, ob die Backend-Server erreichbar sind. Ein HTTP-Check kann so eingerichtet werden:

backend web_servers
    balance roundrobin
    option httpchk GET /health
    server web1 192.168.1.10:80 check
    server web2 192.168.1.11:80 check

Statistikseite aktivieren

Die HAProxy-Statistikseite ermöglicht eine schnelle Übersicht über den Zustand der Server:

listen stats
    bind *:8080
    stats enable
    stats uri /haproxy?stats
    stats auth admin:password

HAProxy starten und aktivieren

Damit HAProxy automatisch beim Systemstart läuft:

sudo systemctl enable haproxy
sudo systemctl start haproxy
sudo systemctl status haproxy

Erweiterte Load-Balancing-Strategien

  • Roundrobin: Gleichmäßige Verteilung der Anfragen
  • Leastconn: Neue Verbindungen werden an den Server mit den wenigsten aktiven Sessions gesendet
  • Source: Verbindungen von derselben IP werden immer an denselben Server geleitet (Session-Persistence)
  • Layer-7 Routing: URL-basiertes Routing zu unterschiedlichen Backends

Sicherheit und Performance

Empfehlungen für den produktiven Einsatz:

  • Firewall-Regeln nur für die HAProxy-Ports öffnen
  • SSL/TLS über frontend terminieren oder über ein Reverse-Proxy-Setup
  • Keepalived für Hochverfügbarkeit kombinieren
  • Logs analysieren und Limits für Verbindungen setzen
  • Health Checks regelmäßig überprüfen

Tipps für Troubleshooting

  • Fehlerhafte Konfiguration testen:
    haproxy -c -f /etc/haproxy/haproxy.cfg
  • Live-Log mit
    tail -f /var/log/haproxy.log

    überwachen

  • Backend-Server direkt prüfen:
    curl http://192.168.1.10/
  • Verbindungen zählen:
    echo "show stat" | socat stdio /run/haproxy/admin.sock

Fazit

HAProxy ist ein leistungsfähiger Load Balancer für Linux-Server, der sowohl einfache als auch komplexe Szenarien abdeckt. Mit korrekter Konfiguration, Health Checks, Statistikseite und Sicherheitsmaßnahmen kann HAProxy die Performance verbessern und die Verfügbarkeit von Diensten sicherstellen. Für Unternehmensumgebungen empfiehlt sich die Kombination mit Hochverfügbarkeitslösungen wie Keepalived.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles