So konfigurieren Sie HAProxy als Reverse Proxy

So Konfigurieren Sie Haproxy Als Reverse Proxy



Wenn Sie über einen Webserver verfügen, hilft die Möglichkeit, die Client-Anfragen und die Antwort des Servers weiterzuleiten, bei der Verteilung des Datenverkehrs und erhöht die Sicherheit. Ein Reverse-Proxy wie HAProxy fungiert bei der Konfiguration als Vermittler zwischen Ihrer Webanwendung und Clientgeräten. Auf diese Weise empfängt es die Client-Anfragen und leitet sie an den entsprechenden Webserver weiter, während es gleichzeitig die Antwort des Servers empfängt und diese an die Clients weiterleitet. Die Konfiguration von HAProxy auf Ihrer Serverseite als Reverse-Proxy ist ein unkomplizierter Vorgang. In diesem Beitrag werden die Schritte beschrieben, die Sie unternehmen sollten.

Warum einen Reverse-Proxy verwenden?

Bevor wir die Schritte zum Konfigurieren von HAProxy als Reverse-Proxy besprechen, wollen wir kurz hervorheben, warum ein Reverse-Proxy zu Ihrem Vorteil funktioniert. Die folgenden Vorteile ergeben sich für Sie durch die Verwendung von HAProxy als Reverse-Proxy:

  1. Lastverteilung - Auf Ihrem Webserver kann es zu einem bestimmten Zeitpunkt zu einer Vielzahl von Client-Anfragen kommen, die bei unsachgemäßer Bearbeitung zu einer Überlastung und unerwarteten Ausfallzeiten führen können. Durch die Konfiguration eines Reverse-Proxys wird jedoch sichergestellt, dass der Datenverkehr auf die Backend-Server verteilt wird, um sicherzustellen, dass kein Server mit Anfragen überlastet wird.
  2. Firewall und Sicherheit – Der Reverse-Proxy verbindet die Client-Geräte mit dem Webserver. Dadurch wird das Risiko verringert, dass unsere Backend-Server direkt dem Internet ausgesetzt sind. Auf diese Weise kann bösartiger Datenverkehr leicht gefiltert und blockiert werden, bevor er die Server beschädigt.
  3. Besseres Caching – Mit einem Reverse-Proxy werden Sie die Gesamtleistungsverbesserung bemerken, da die Ladezeit durch die Zwischenspeicherung der statischen Inhalte verkürzt wird. Außerdem erzielen Sie eine bessere Benutzererfahrung.
  4. SSL/TLS-Terminierung – Mit einem Reverse-Proxy erfolgt die Ver- und Entschlüsselung der SSL/TLS-Verbindungen nahtlos, und Ihre Backend-Server müssen diese Aufgabe nicht übernehmen, was ihre Belastung reduziert.

So konfigurieren Sie HAProxy als Reverse Proxy

Nachdem wir erklärt haben, warum ein Reverse-Proxy wie HAProxy unerlässlich ist, geben wir nun die folgenden Konfigurationsschritte an.







Schritt 1: HAProxy installieren



Wahrscheinlich haben Sie HAProxy bereits auf Ihrem System installiert. Wenn ja, überspringen Sie diesen Schritt. Wenn Sie jedoch noch keine Erfahrung mit diesem Thema haben, führen Sie den folgenden Befehl aus, um HAProxy zu installieren:



$ sudo apt installiere Haproxy

Wir haben es in unserem Fall bereits installiert.





Schritt 2: Bearbeiten Sie die HAProxy-Konfigurationsdatei



HAProxy verfügt über eine Konfigurationsdatei, auf die Sie zugreifen und die Sie bearbeiten müssen, um sie als Reverse-Proxy zu konfigurieren. Öffnen Sie zunächst die Konfigurationsdatei mit einem Texteditor.

$ sudo nano /etc/haproxy/haproxy.cfg

Beachten Sie nach dem Öffnen, dass es grundlegende Konfigurationen für die Standard- und globalen Abschnitte enthält. Wir müssen dann zwei weitere Abschnitte erstellen: Frontend und Backend. Das Frontend definiert die Schnittstellen, die die Client-Anfragen empfangen sollen, während das Backend die Server angibt, die den Datenverkehr verarbeiten.

Für dieses Beispiel konfigurieren wir das Frontend so, dass es die Client-Anfragen von den Ports 80 und 81 akzeptiert. Anschließend erstellen wir eine Regel, um den Datenverkehr so ​​zu verteilen, dass die Verbindungen von Port 80 zu einem bestimmten Server weitergeleitet werden, während die Verbindungen von Port 81 zu einem anderen gehen Server. Unser Frontend-Bereich sieht wie folgt aus:

Da wir zwei Backend-Server erstellt haben, backend2 und linux_backend, müssen wir die Backend-Abschnitte für beide Server erstellen. Wir geben jeweils an, welche IP den Datenverkehr an unseren „Server1“ und „Server2“ verteilen soll.

Sobald die Konfigurationsdatei bearbeitet ist, speichern Sie sie und verlassen Sie die Datei. Beachten Sie, dass es je nach Bedarf zahlreiche Möglichkeiten gibt, HAProxy zu konfigurieren. In unserem Fall erstellen wir die Webserver mithilfe der angegebenen IP-Adresse, um unseren Datenverkehr weiterzuleiten. Ändern Sie die IP-Adressen so, dass sie mit denen Ihrer Webserver und dem Port übereinstimmen, den Sie abhören möchten.

Schritt 3: Überprüfen Sie die Gültigkeit

Bei HAProxy gibt es einen Befehl, mit dem Sie überprüfen können, ob Ihre Konfigurationsdatei gültig ist. Führen Sie den folgenden Befehl aus und sehen Sie, welche Ausgabe Sie erhalten:

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Wenn Sie eine ähnliche Ausgabe erhalten, bestätigt dies, dass Ihre Konfigurationsdatei gültig ist. Andernfalls kommt es zu Fehlern.

Schritt 4: Testen Sie den Reverse Proxy

Mit einem Befehl wie „curl“ können Sie Datenverkehr an Ihren Webserver senden und sehen, wie dieser reagiert. In unserem Fall verwenden wir Python3, um die Webserver zu erstellen.

Durch Ausführen des Befehls „curl“ wird bestätigt, dass unser Webserver den angegebenen Port überwacht und dass HAProxy den Datenverkehr basierend auf unserer Konfigurationsdatei an den angegebenen Server verteilt hat.

Sie können auch über einen Browser auf Ihren Webserver zugreifen und bestätigen, dass der Reverse-Proxy funktioniert.

Da wir über zwei Webserver verfügen, die je nach dem von den Client-Geräten verwendeten Port verwendet werden können, binden wir einen anderen Webserver an einen anderen Port und sehen, was passiert.

Die folgende Ausgabe zeigt, dass HAProxy unseren Datenverkehr an den zweiten Backend-Server gesendet hat, nachdem festgestellt wurde, dass die Client-Anfrage über Port 81 gesendet wurde, und bestätigt, dass die Datenverkehrsverteilung wie erwartet funktioniert.

So konfigurieren Sie HAProxy als Reverse-Proxy.

Abschluss

HAProxy ist eine ausgezeichnete Wahl als Reverse-Proxy für Ihren Webserver. Die Konfiguration ist unkompliziert. Geben Sie nur an, welcher Port auf Clientanfragen lauschen soll und welche Regeln für den Lastausgleich verwendet werden sollen. Fügen Sie dann die zu verwendenden Backend-Server hinzu, und schon ist Ihr Reverse-Proxy betriebsbereit. In diesem Beitrag werden die folgenden Schritte beschrieben und ein Beispiel gezeigt, um sicherzustellen, dass Sie sich mit HAProxy vertraut machen.