HAProxy ist ein leistungsfähiger Load Balancer und Reverse Proxy, der speziell für Hochverfügbarkeits- und Hochlast-Umgebungen entwickelt wurde. Er verteilt eingehende Anfragen effizient auf mehrere Backend-Server, verbessert die Performance von Web-Anwendungen und erhöht die Ausfallsicherheit. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie HAProxy auf Linux installiert, konfiguriert und optimiert wird, um Web-Anwendungen zuverlässig zu load-balancen.
Systemvorbereitung
Vor der Installation von HAProxy sollte das System aktualisiert werden und notwendige Hilfspakete installiert sein.
System aktualisieren
sudo apt update
sudo apt upgrade -y
Für CentOS/RHEL:
sudo yum update -y
Hilfspakete installieren
sudo apt install wget curl git unzip -y
HAProxy Installation
HAProxy kann über die Standard-Paketquellen installiert werden. Für aktuelle Versionen empfiehlt sich das offizielle Repository.
Installation unter Ubuntu/Debian
sudo apt install haproxy -y
sudo systemctl start haproxy
sudo systemctl enable haproxy
sudo systemctl status haproxy
Installation unter CentOS/RHEL
sudo yum install epel-release -y
sudo yum install haproxy -y
sudo systemctl start haproxy
sudo systemctl enable haproxy
sudo systemctl status haproxy
Grundlegende HAProxy-Konfiguration
Die Hauptkonfiguration befindet sich in /etc/haproxy/haproxy.cfg. Hier werden Frontend- und Backend-Definitionen, Load-Balancing-Methoden und Sicherheitsoptionen festgelegt.
Beispielstruktur der Konfigurationsdatei
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
maxconn 2000
defaults
log global
mode http
option httplog
option dontlognull
retries 3
timeout connect 5s
timeout client 50s
timeout server 50s
Frontend konfigurieren
Das Frontend empfängt die Anfragen von Clients und leitet sie an die entsprechenden Backend-Server weiter.
Beispiel Frontend für Web-Apps
frontend http_front
bind *:80
default_backend web_servers
Backend konfigurieren
Das Backend definiert die Webserver, auf die HAProxy die Anfragen verteilt.
Beispiel Backend
backend web_servers
balance roundrobin
server web1 192.168.50.11:80 check
server web2 192.168.50.12:80 check
server web3 192.168.50.13:80 check
Load-Balancing-Methoden
- roundrobin: gleichmäßige Verteilung der Anfragen
- leastconn: weiterleiten an Server mit den wenigsten Verbindungen
- source: basierend auf der Client-IP
HTTPS / TLS aktivieren
HAProxy kann TLS-Termination durchführen, um HTTPS zu ermöglichen und die Backend-Server zu entlasten.
SSL-Zertifikat einbinden
frontend https_front
bind *:443 ssl crt /etc/ssl/certs/meinewebsite.pem
default_backend web_servers
Let’s Encrypt Zertifikate nutzen
sudo apt install certbot -y
sudo certbot certonly --standalone -d meinewebsite.de -d www.meinewebsite.de
sudo cat /etc/letsencrypt/live/meinewebsite.de/fullchain.pem /etc/letsencrypt/live/meinewebsite.de/privkey.pem > /etc/ssl/certs/meinewebsite.pem
Monitoring und Statistik
HAProxy bietet ein integriertes Statistik-Interface, um Backend-Server und Traffic zu überwachen.
Stats-Seite aktivieren
listen stats
bind *:8404
stats enable
stats uri /haproxy_stats
stats refresh 10s
stats auth admin:starkesPasswort
Sicherheit
Um den Reverse Proxy abzusichern, sollten TLS, Firewalls und Zugriffsrechte korrekt konfiguriert sein.
Firewall für HAProxy konfigurieren
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
Benutzerrechte
HAProxy sollte unter einem dedizierten Benutzer laufen, der keine unnötigen Rechte besitzt.
Netzwerkkonfiguration
Damit HAProxy erreichbar ist, müssen IP-Adresse, Subnetz und Gateway korrekt konfiguriert sein.
Subnetzberechnung
Beispiel: Server-IP 10.0.2.20/24
<math>
Subnetzadresse = 10.0.2.20 & 255.255.255.0 = 10.0.2.0
Broadcastadresse = 10.0.2.0 | ~255.255.255.0 = 10.0.2.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 10.0.2.20/24
gateway4: 10.0.2.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Performance-Optimierung
HAProxy bietet Optionen zur Optimierung von Durchsatz und Latenz.
Wichtige Parameter
- maxconn: Maximale Anzahl gleichzeitiger Verbindungen
- tune.ssl.default-dh-param: Diffie-Hellman Parameter für TLS
- timeout connect / client / server: Verbindungszeitlimits
global
maxconn 4000
tune.ssl.default-dh-param 2048
defaults
timeout connect 5s
timeout client 50s
timeout server 50s
Best Practices
- Regelmäßige Updates von HAProxy und Linux-Paketen
- Automatische SSL-Erneuerung testen
- Backend-Server regelmäßig überwachen und prüfen
- Logs analysieren und bei Bedarf Alerting einrichten
- Load-Balancing-Methode an die Anwendungsanforderungen anpassen
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.











