HAProxy ist eine leis­tungs­star­ke Open-Source-Software, die Last­ver­tei­lung und die Ein­rich­tung von Proxys für TCP- sowie HTTP-basierte An­wen­dun­gen er­mög­licht. Unter Debian 12 lässt sie sich in wenigen Schritten in­stal­lie­ren. HAProxy wird häufig in hoch­ver­füg­ba­ren Systemen ein­ge­setzt, um Anfragen effizient zu verteilen und so die Sta­bi­li­tät sowie Per­for­mance deiner Anwendung zu steigern.

Was ist HAProxy?

HAProxy (High Avai­la­bi­li­ty Proxy) ist ein per­for­man­ter und ver­läss­li­cher Load Balancer und Reverse Proxy, der für die Ver­tei­lung von Netzwerk- und An­wen­dungs­ver­kehr ein­ge­setzt wird. Die Software un­ter­stützt sowohl Layer 4 (Transport Layer, z. B. TCP) als auch Layer 7 (Ap­pli­ca­ti­on Layer, z. B. HTTP) des OSI-Modells beim Load Balancing. Dank geringer Latenz, hoher Effizienz und um­fas­sen­der Optionen eignet sich HAProxy für Un­ter­neh­men jeder Größe.

Un­ter­neh­men sowie Ent­wick­ler:innen nutzen HAProxy, um die Last auf mehrere Backend-Server zu verteilen, Ser­ver­aus­fäl­le ab­zu­fan­gen und die all­ge­mei­ne Per­for­mance zu op­ti­mie­ren. Die Software ist ein zentraler Baustein vieler Web­in­fra­struk­tu­ren, besonders bei hoch­ver­füg­ba­ren und ska­lier­ba­ren Setups. Zu den Haupt­funk­tio­nen zählen SSL/TLS-Ter­mi­nie­rung, Health-Checks für Backend-Server, Rate Limiting und DDoS-Schutz­me­cha­nis­men.

Schritt-für-Schritt-In­stal­la­ti­on von HAProxy auf Debian 12

Schritt 1: System ak­tua­li­sie­ren

Bevor du HAProxy in­stal­lierst, solltest du deine Linux-Dis­tri­bu­ti­on ak­tua­li­sie­ren. So stellst du sicher, dass alle Pakete am neuesten Stand sind und die In­stal­la­ti­on glatt läuft.

Dieser Befehl ak­tua­li­siert die Pa­ket­lis­ten und in­stal­liert alle ver­füg­ba­ren Updates für dein Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Schritt 2: HAProxy in­stal­lie­ren

Da Debian 12 HAProxy in den of­fi­zi­el­len Pa­ket­quel­len führt, klappt die In­stal­la­ti­on einfach über den Pa­ket­ma­na­ger apt.

sudo apt install haproxy -y
bash

Mit diesem Befehl lädst du HAProxy inklusive aller be­nö­tig­ten Ab­hän­gig­kei­ten herunter und in­stal­lierst es.

Schritt 3: HAProxy-Version prüfen

Nachdem die In­stal­la­ti­on ab­ge­schlos­sen ist, prüfe kurz, ob alles geklappt hat. Das machst du, indem du die in­stal­lier­te HAProxy-Version abrufst:

haproxy -v
bash

Die Ausgabe sieht in etwa so aus:

Bild: Screenshot der aktuellen HAProxy-Version im Terminal
Nach dem Ausführen des Befehls siehst du die aktuell in­stal­lier­te HAProxy-Version in deinem Terminal.

Damit ist bestätigt, dass HAProxy korrekt auf deinem System in­stal­liert wurde.

Schritt 4: HAProxy als Dienst ak­ti­vie­ren

Damit HAProxy nach dem Sys­tem­start au­to­ma­tisch mitläuft und dauerhaft aktiv bleibt, musst du den Dienst ak­ti­vie­ren und starten.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Um zu kon­trol­lie­ren, ob der Dienst feh­ler­frei läuft, nutze diesen Befehl:

sudo systemctl status haproxy
bash

Läuft HAProxy wie gewünscht, zeigt die Ausgabe den Status „active (running)“ an:

Bild: Screenshot des aktuellen HAProxy-Status im Terminal
Am Status „active (running)“ erkennst du in der Ter­mi­nal­aus­ga­be, dass HAProxy ein­wand­frei funk­tio­niert.

Schritt 5: Basis-Kon­fi­gu­ra­ti­on von HAProxy

Die Kon­fi­gu­ra­ti­ons­da­tei von HAProxy findest du unter /etc/haproxy/haproxy.cfg. Bevor du Än­de­run­gen vornimmst, erstelle am besten eine Si­che­rungs­ko­pie. So hast du im Ernstfall ein Backup parat:

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

Bearbeite die Datei nun mit einem Editor deiner Wahl (wie Vim oder nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

Eine einfache HAProxy-Kon­fi­gu­ra­ti­on kann bei­spiels­wei­se 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
	stats timeout 30s
	user haproxy
	group haproxy
	daemon
defaults
	log global
	option httplog
	option dontlognull
	timeout connect 5000ms
	timeout client 50000ms
	timeout server 50000ms
frontend http_front
	bind *:80
	default_backend web_servers
backend web_servers
	balance roundrobin
	server server1 192.168.1.10:80 check
	server server2 192.168.1.11:80 check
txt

Diese Kon­fi­gu­ra­ti­on verteilt HTTP-Anfragen im Round-Robin-Verfahren auf zwei Webserver. Sie ist über­sicht­lich in Ab­schnit­te un­ter­teilt: Der globale Teil definiert Basis-Ein­stel­lun­gen, wie etwa das Be­nut­zer­kon­to, unter dem HAProxy läuft, die maximale Anzahl an Ver­bin­dun­gen sowie den Spei­cher­ort der Logs. Außerdem lässt sich ein chroot-Ver­zeich­nis festlegen, um HAProxy aus Si­cher­heits­grün­den in einer iso­lier­ten Umgebung zu betreiben.

Nach dem globalen Teil folgt der defaults-Abschnitt. Hier de­fi­nierst du Stan­dard­wer­te für alle weiteren Kon­fi­gu­ra­tio­nen, wie den HTTP-Modus, das Logging und ver­schie­de­ne Timeouts.

Die Ab­schnit­te frontend und backend steuern den Da­ten­fluss. Im Frontend-Bereich legst du fest, auf welchen Ports HAProxy Anfragen ent­ge­gen­nimmt. Der Backend-Bereich bestimmt die Ziel­ser­ver, an die der Traffic wei­ter­ge­lei­tet wird. Hier kommen auch die Load-Balancing-Al­go­rith­men zum Einsatz.

Speichere die Datei nach deinen An­pas­sun­gen ab und starte HAProxy neu:

sudo systemctl restart haproxy
bash

Die In­stal­la­ti­on auf Debian 12 ist nun fertig. Du kannst die Kon­fi­gu­ra­ti­on jederzeit über die ent­spre­chen­de Datei ver­fei­nern.

Zum Hauptmenü