HAProxy (High Avai­la­bi­li­ty Proxy) ist eine beliebte Software, die du als Reverse Proxy und Load Balancer einsetzen kannst. Unter Ubuntu 22.04 lässt sie sich un­kom­pli­ziert in wenigen Schritten in­stal­lie­ren.

Was ist HAProxy?

HAProxy ist eine leis­tungs­star­ke Open-Source-Software, die flexibel als Load Balancer oder Reverse Proxy arbeitet. Sie wird häufig genutzt, um den Da­ten­ver­kehr auf mehrere Server zu verteilen. Das sorgt für höhere Ver­füg­bar­keit und bessere Per­for­mance deiner Web­an­wen­dun­gen. Vor allem in ska­lier­ba­ren und aus­fall­si­che­ren Systemen ist HAProxy der Gold­stan­dard.

Durch die hohe Effizienz ver­ar­bei­tet HAProxy tausende Anfragen pro Sekunde, ohne die Res­sour­cen deines Systems unnötig zu be­an­spru­chen. Dabei stehen dir ver­schie­de­ne Load-Balancing-Methoden wie Round-Robin, Least Con­nec­tion oder Source-IP-Hashing zur Verfügung. Features wie SSL-Ter­mi­nie­rung, Health-Checks und Sticky Sessions helfen dir dabei, den Traffic optimal zu steuern. Ein großer Vorteil ist zudem die gezielte Wei­ter­lei­tung basierend auf Regeln oder Header-Infos.

HAProxy kommt in vielen großen Betrieben und Cloud-Um­ge­bun­gen zum Einsatz. Die Steuerung erfolgt über eine logisch auf­ge­bau­te Kon­fi­gu­ra­ti­ons­da­tei, mit der du alles exakt an deine An­for­de­run­gen anpasst.

HAProxy auf Ubuntu 22.04 in­stal­lie­ren: Schritt für Schritt

Schritt 1: System auf Stand bringen

Bevor du startest, sollte deine Linux-Dis­tri­bu­ti­on am neuesten Stand sein. So stellst du sicher, dass alle Pakete aktuell sind und Si­cher­heits­lü­cken ge­schlos­sen wurden. Öffne das Terminal und gib folgende Befehle ein:

sudo apt update && sudo apt upgrade -y
bash

Damit wird zuerst die Pa­ket­lis­te ak­tua­li­siert, um neue Versionen zu finden. Danach werden alle in­stal­lier­ten Pakete auf den neuesten Stand gebracht. Der Parameter -y bestätigt dabei alle Updates au­to­ma­tisch für dich.

Schritt 2: HAProxy-In­stal­la­ti­on

Ist dein System bereit, in­stal­lierst du HAProxy mit diesem Befehl:

sudo apt install haproxy -y
bash

Ubuntu lädt HAProxy nun aus den of­fi­zi­el­len Quellen und in­stal­liert die Anwendung. Da das Programm sehr schlank ist, geht das meistens recht schnell. Prüfe danach einfach mit folgendem Befehl, ob HAProxy er­folg­reich in­stal­liert wurde:

haproxy -v
bash

Du siehst nun die in­stal­lier­te Version direkt in der Ausgabe.

Bild: Screenshot der aktuellen HAProxy-Version im Terminal
Nach dem Befehl wird dir die aktuell in­stal­lier­te Version von HAProxy angezeigt.

Schritt 3: HAProxy-Dienst starten und ak­ti­vie­ren

Damit HAProxy arbeitet, muss der Dienst aktiv sein. Starte ihn zuerst mit Admin-Rechten:

sudo systemctl start haproxy
bash

Ob alles glatt läuft, kon­trol­lierst du mit diesem Aufruf:

sudo systemctl status haproxy
bash

Ein funk­tio­nie­ren­der HAProxy sieht in der Ausgabe etwa so aus:

Bild: Screenshot des aktuellen HAProxy-Status im Terminal
Am Status „active (running)“ erkennst du, dass HAProxy ohne Probleme läuft.

Damit der Dienst auch nach einem Server-Neustart au­to­ma­tisch wieder hochfährt, aktiviere ihn hiermit:

sudo systemctl enable haproxy
bash

Schritt 4: HAProxy richtig kon­fi­gu­rie­ren

Deine Ein­stel­lun­gen nimmst du in der Datei /etc/haproxy/haproxy.cfg vor. Erstelle am besten vorher eine Si­che­rungs­ko­pie der Ori­gi­nal­da­tei:

sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup
bash
Hinweis

Durch das Backup kannst du jederzeit zum funk­tio­nie­ren­den Aus­gangs­zu­stand zu­rück­keh­ren. So probierst du Än­de­run­gen völlig sor­gen­frei aus.

Bearbeite die Datei nun mit einem Text­edi­tor deiner Wahl, zum Beispiel nano oder Vim. Wir nutzen hier nano:

sudo nano /etc/haproxy/haproxy.cfg
bash

Eine einfache Kon­fi­gu­ra­ti­on für Load Balancing sieht bei­spiels­wei­se so aus:

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

In diesem Beispiel wird der HTTP-Traffic auf Port 80 an zwei Backend-Server („web1“ und „web2“) verteilt. Durch das Round-Robin-Verfahren werden die Anfragen ab­wech­selnd wei­ter­ge­lei­tet.

Schritt 5: Neustart und Funk­ti­ons­test

Damit deine neuen Ein­stel­lun­gen greifen, starte HAProxy einmal neu:

sudo systemctl restart haproxy
bash

Sollte es Probleme geben, kannst du die Syntax der Kon­fi­gu­ra­ti­ons­da­tei mit diesem Befehl prüfen:

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

Die Meldung Configuration file is valid bestätigt dir, dass alles passt. Jetzt kannst du testen, ob alles funk­tio­niert, indem du die IP-Adresse oder Domain deines Servers im Browser aufrufst.

Zum Hauptmenü