In diesem Tutorial installieren wir den kostenlosen Open-Source Proxyserver HAProxy. Mit der Software steht uns nach der Installation ein Load Balancer und Reverse-Proxy zur Verfügung, der stellvertretend Anfragen für TCP- und HTTP-Anwendungen entgegennimmt. Die Anfragen können auf unterschiedlichen Webservern verteilt werden, sodass wir mehrere Internetseiten und Webservices im selben Netzwerk über die Standardports (80/403) freigeben können.
Normalerweise können wir für eine öffentliche IP-Adresse die Web-Ports für nur einen einzelnen Server mit einer lokalen IP-Adresse freigeben. Ein Reverse-Proxy Server ermöglicht es uns, viele Webseiten und Webanwendungen mit nur einer einzigen öffentlichen IP-Adresse freigeben zu können.
HAProxy wurde in C geschrieben und ist durch seine Schnelligkeit und seine einfache Einrichtung bekannt. Wir installieren in dieser Anleitung die Software HAProxy auf einem Linux-Server mit Ubuntu 22.04 und richtigen anschließend einen Reverse-Proxy mit Load Balancer für zwei Webserver ein. So werden eingehende Client-Anfragen je nach Serverauslastung auf die gewünschten Endpunkte verteilt.
Sollte ein Webserver sehr ausgelastet sein, weil temporär zu viele gleichzeitige Anfragen existieren, übernimmt der Load Balancer seinen Job (Lastenausgleich) und verteilt den eingehenden Traffic auf die zuvor eingepflegten Webserver, um effektiv eine Überforderung eines einzelnen Webservers zu verhindern. Die im Reverse-Proxy eingepflegten Webserver werden übrigens Backend-Server bezeichnet.
HAProxy beansprucht nur wenig Rechenleistung
Die Software verbraucht im Vergleich zu ähnlicher Software sehr wenig Speicher- und verursacht im Betrieb kaum CPU-Auslastung. Viele der größten und erfolgreichsten Seiten im Internet verwenden die Open-Source-Software HAProxy. Beginnen wir im nächsten Abschnitt mit der Installation von HAProxy auf einem Linux-Hostsystem mit installiertem Linux Ubuntu 22.04. Die Installation funktioniert in der Regel genauso gut für Linux Debian und allen anderen gängigen Distributionen, in denen HAProxy bereits Teil des Standard-Repository ist.
Hinweis: Solltest du nicht als Root-Benutzer auf deinem Server angemeldet sein, musst du die einzelnen Befehle in dem Terminal mit dem Sudo-Befehl ausführen, sofern du eine Ubuntu-Server-Distribution für die HAProxy Installation verwendest.
Inhaltsverzeichnis: Installationsanleitung für die Integration eines Reverse-Proxy mit Lastenausgleich bei der Verwendung von HAProxy
HAProxy installieren: Installation unter Linux Ubuntu 22.04
![HAProxy installieren auf Linux mit Reverse-Proxy und Lastenausgleich](https://usercontent.one/wp/www.veuhoff.net/wp-content/uploads/2022/07/HAProxy-installieren-auf-Linux-mit-Reverse-Proxy-und-Lastenausgleich.webp?media=1725434106)
Die Installation von HAProxy auf einem Server mit Linux Ubuntu 22.04 ist keine große Sache, da wir die Software über das Standard-Repository mithilfe des apt-get-Befehls installieren können. Führe dazu den folgenden Befehl in deinem Terminal aus:
apt-get install haproxy -y
Wurde die Software erfolgreich installiert, kannst du den HAProxy Dienst jetzt starten:
systemctl start haproxy
Damit HAProxy bei einem Neustart deines Servers wieder selbständig gestartet wird, empfiehlt es sich, den folgenden Befehl zu verwenden:
systemctl enable haproxy
Webserver in die HAProxy Konfigurationsdatei hinzufügen: Reverse-Proxy und Load Balancer implementieren
![Konfigurationsdatei von HAProxy bearbeiten und Backend-Server (Endpunkte) für den Lastenausgleich hinzufügen](https://usercontent.one/wp/www.veuhoff.net/wp-content/uploads/2022/07/Konfigurationsdatei-von-HAProxy-bearbeiten-und-Backend-Server-Endpunkte-fuer-den-Lastenausgleich-hinzufuegen.webp?media=1725434106)
In diesem Abschnitt pflegen wir die lokalen IP-Adressen der gewünschten Webserver hinzu, die über den HAProxy Reverse-Proxy-Server ausgegeben werden sollen. Verwende den folgenden Befehl, um beliebig viele Webserver einzupflegen:
nano /etc/haproxy/haproxy.cfg
Kopiere den folgenden Inhalt und füge die IP-Adressen und Ports von deiner Infrastruktur ein:
frontend apache_front
# Frontend listen port - 80
bind *:80
# Set the default backend
default_backend apache_backend_servers
# Enable send X-Forwarded-For header
option forwardfor
# Define backend
backend apache_backend_servers
# Use roundrobin to balance traffic
balance roundrobin
# Define the backend servers
server backend01 192.168.178.100:80 check
server backend02 192.168.178.101:80 check
Hilfestellung für die Einpflegung von Webserver mit HAProxy
Die Beispiel-IP-Adressen (Backend-Server) müssen durch die realen IP-Adressen deiner Webserver ausgetauscht werden. Es können selbstverständlich noch viele weitere Backend-Server hinzugefügt werden. Das können Webseiten, aber auch Webanwendungen wie zum Beispiel eine Nextcloud sein.
Verwendest du auf deinen Servern ein SSL-Zertifikat, um eine verschlüsselte Verbindung über HTTPS zu ermöglichen, dann ergänze den Port 80 auf den Port 443.
Speichere die vorgenommenen Änderungen in der HAProxy-Konfigurationsdatei (STRG + S) ab und verlasse den Nano-Editor wieder (STRG + X).
Starte den HAProxy-Service jetzt neu, damit die Änderungen wirksam werden:
systemctl restart haproxy
Teste die erfolgreiche Installation und Konfiguration von HAProxy
Wir haben in dieser Anleitung auf einem Server die Software HAProxy installiert und mindestens zwei Webserver in der Konfigurationsdatei eingepflegt. Jetzt wird der Traffic und alle Anfragen gleichermaßen auf beiden Servern verteilt, sodass wir einen effektiven und vor allem komplett kostenlosen Load-Balancer integriert haben.
In der Praxis bestehen beide Server aus einem Clusterverbund, die sich gegenseitig synchronisieren. Das hat den Vorteil, dass wir somit einen Webserver in wenigen Schritten hochverfügbar machen können. Teste die Konfiguration, indem du die IP-Adresse seines Servers über einen beliebigen Browser ansteuerst.
Die eingepflegten Backend-Server, die für den Aufbau deines Webinhaltes zuständig sind, sollten sich bei Aktualisierungen (F5) jetzt abwechseln. So erhöhen wir die Performance unserer Webanwendungen und die Erreichbarkeit, sollte ein Webserver mal seinen Dienst quittieren oder abstürzen.
![](https://usercontent.one/wp/www.veuhoff.net/wp-content/uploads/2022/07/Webserver-Ausgabe-1-mit-Lastenausgleich-und-Reverse-Proxy.webp?media=1725434106)
![](https://usercontent.one/wp/www.veuhoff.net/wp-content/uploads/2022/07/Webserver-Ausgabe-2-mit-Lastenausgleich-und-Reverse-Proxy.webp?media=1725434106)