Ubuntu

So installieren und konfigurieren Sie HAproxy unter Ubuntu 20.04 LTS

So installieren und konfigurieren Sie HAproxy unter Ubuntu 20.04 LTS
HAproxy ist ein leichtgewichtiges Open-Source-Paket, das Hochverfügbarkeit und Lastausgleich für TCP- und HTTP-basierte Programme bietet. Es verteilt die Last auf die Web- und Anwendungsserver. HAproxy ist für fast alle Linux-Distributionen verfügbar. Es ist ein weit verbreiteter Load Balancer, der für seine Effizienz, Zuverlässigkeit und seinen geringen Speicher- und CPU-Footprint beliebt ist. In diesem Beitrag erklären wir, wie Sie HAproxy auf einem Ubuntu-System installieren und konfigurieren.

Wir haben drei Maschinen aufgestellt. Wir werden HAproxy auf einem Server und die Apache-Webserver auf zwei Servern installieren. Unser HAproxy-Server fungiert dann als Load Balancer und verteilt die Last auf die Apache-Webserver.

Hinweis: Das in diesem Beitrag erwähnte Verfahren und die Befehle wurden getestet auf Ubuntu 20.04 LTS (Fokus Fossa). Das gleiche Verfahren gilt auch für Debian- und Mint-Distributionen.

Netzwerkdetails

Wir werden drei Ubuntu-Server verwenden; alles im selben Netzwerk. Die Details unserer Server sind wie folgt:

Hostname: HAproxy, IP-Adresse: 192.168.72.157 (Frontend-Server)
Hostname: Webserver1, IP-Adresse: 192.168.72.158 (Backend-Server)
Hostname: Webserver2, IP-Adresse: 192.168.72.159 (Backend-Server)

Hinweis: Sie müssen auf allen Servern über Sudo-Berechtigungen verfügen.

Wir werden einen Rechner als Load Balancer und die anderen beiden als Webserver konfigurieren. Der HAproxy-Server wird unser Front-End-Server sein, der die Anfragen der Benutzer empfängt und an die beiden Webserver weiterleitet. Die Webserver werden unsere Backend-Server sein, die diese weitergeleiteten Anfragen erhalten.

So sieht unser Setup aus:

Einrichten von Webservern-Backend-Servern

In diesem Abschnitt richten wir zwei Webserver ein (Webserver1 und Webserver2) als unsere Backend-Server.

Auf Webserver1(192.168.72.158)

Führen Sie die folgenden Schritte in Ihrem Webserver aus. Stellen Sie sicher, dass Sie die Hostnamen und IP-Adressen durch die entsprechenden IP-Adressen und Hostnamen Ihrer Webserver ersetzen.

1. Hosts-Datei konfigurieren

Auf Webserver1, Bearbeiten Sie die /etc/hosts Datei:

$ sudo nano /etc/hosts

Fügen Sie dann den Hostnamen-Eintrag für . hinzu HAproxy Server wie folgt:

Hostname-von-HAproxy IP-Adresse-von-HAproxy

In unserem Szenario wäre das:

HAproxy 192.168.72.157

2. Apache-Webserver einrichten

Installieren Sie nun den Apache-Webserver mit dem folgenden Befehl im Terminal. Besuchen Sie auch unseren Beitrag auf So installieren Sie den Apache-Webserver unter Linux.

$ sudo apt install Apache2

Aktivieren und starten Sie dann den Apache-Dienst mit den folgenden Befehlen im Terminal:

$ sudo systemctl aktivieren Apache2
$ sudo systemctl starte apache2

Erstellen Sie eine Indexdatei für Webserver1 Verwenden Sie den folgenden Befehl im Terminal:

$echo"

Hallo! Das ist Webserver1: 192.168.72.158

" | sudo tee /var/www/html/index.html

Wenn auf Ihrem System eine Firewall ausgeführt wird, müssen Sie Apache-Datenverkehr durch diese zulassen:

$ sudo ufw erlauben 80/tcp

Laden Sie dann die Firewall-Konfigurationen neu:

$ufw neu laden

Versuchen Sie nun, in Ihrem Webbrowser auf die Site zuzugreifen, indem Sie eingeben http:// gefolgt von entweder der IP-Adresse oder dem Hostnamen Ihres Webservers.

http:// Hostname-oder-IP-Adresse

Alternativ können Sie auch den curl-Befehl verwenden, um die Webseite zu testen.

$ curl

Auf Webserver-2 192.168.72.159)

Führen Sie die folgenden Schritte in Ihrem zweiten Webserver aus. Stellen Sie sicher, dass Sie die Hostnamen und IP-Adressen durch die entsprechenden IP-Adressen und Hostnamen Ihrer Webserver ersetzen.

1. Hosts-Datei konfigurieren

Im Webserver2, Bearbeiten Sie die /etc/hosts Datei:

$ sudo nano /etc/hosts

Fügen Sie dann den Hostnamen-Eintrag für . hinzu HAproxy Server wie folgt:

HAproxy 192.168.72.157

2. Apache-Webserver installieren

Installieren Sie nun den Apache-Webserver mit dem folgenden Befehl im Terminal.

$ sudo apt install Apache2

Aktivieren und starten Sie dann den Apache-Dienst mit den folgenden Befehlen im Terminal:

$ sudo systemctl aktivieren Apache2
$ sudo systemctl starte apache2

Erstellen Sie eine Indexdatei für Webserver2 mit dem folgenden Befehl im Terminal:

$echo"

Hallo! Das ist Webserver2: 192.168.72.159

" | sudo tee /var/www/html/index.html

Apache in der Firewall zulassen:

$ sudo ufw erlauben 80/tcp

und laden Sie dann die Firewall-Konfigurationen neu:

$ufw neu laden

Versuchen Sie nun, in Ihrem Webbrowser auf die Site zuzugreifen, indem Sie eingeben http:// gefolgt von entweder der IP-Adresse oder dem Hostnamen.

http:// Hostname-oder-IP-Adresse

Alternativ können Sie den curl-Befehl verwenden, um die Webseite zu testen.

$ curl

Jetzt sind unsere Apache-Webserver bereit.

HAproxy Load Balancer-Frontend-Server einrichten

In diesem Abschnitt richten wir einen HAproxy-Load-Balancer für unsere Webserver. Dieser HAproxy-Server fungiert als Frontend-Server und akzeptiert eingehende Anfragen von Clients.

Auf der HAproxy Server (192.168.72.157), führen Sie die folgenden Schritte aus, um den Load-Balancer einzurichten.

1. Hosts-Datei konfigurieren

Bearbeiten Sie die /etc/hosts Datei mit dem folgenden Befehl im Terminal:

$ sudo nano /etc/hosts

Fügen Sie die folgenden Hostnameneinträge für beide hinzu for Apache Webserver zusammen mit eigenem Hostnamen:

192.168.72.157 HAproxy
192.168.72.158 Webserver1
192.168.72.159 Webserver2

Speichern und schließen Sie nun die /etc/hosts Datei.

HAproxy-Load-Balancer installieren

In diesem Schritt installieren wir nun den HAproxy auf einem unserer Ubuntu-Server (192.168.72.157). Aktualisieren Sie dazu apt mit dem folgenden Befehl im Terminal:

$ sudo apt-get update

Aktualisieren Sie dann die Pakete mit dem folgenden Befehl:

$ sudo apt-get upgrade

Installieren Sie nun HAproxy mit dem folgenden Befehl im Terminal:

$ sudo sudo apt haproxy installieren

Sobald die Installation des HAproxy-Servers abgeschlossen ist, können Sie sie mit dem folgenden Befehl im Terminal bestätigen:

$ haproxy -v

Es zeigt Ihnen die installierte Version von HAproxy auf Ihrem System an, die bestätigt, dass der HAproxy erfolgreich installiert wurde.

HAproxy als Load Balancer konfigurieren

Im folgenden Abschnitt konfigurieren wir HAproxy als Load Balancer configure. Um dies zu tun, Bearbeiten Sie /etc/haproxy/haproxy.cfg Datei:

$ sudo nano /etc/haproxy/haproxy.cfg

Hängen Sie die folgenden Zeilen in die haproxy.cfg-Datei ersetzt die IP-Adressen durch Ihre eigenen IP-Adressen.

Das Frontend Web-Frontend in den obigen Konfigurationszeilen weist HAproxy an, auf eingehende Anfragen an Port zu hören 80 von 192.168.72.157 und leiten Sie sie dann an Backend-Server weiter, die unter dem . konfiguriert sind Backend Web-Backend. Ersetzen Sie bei der Konfiguration die IP-Adressen durch die entsprechenden IP-Adressen Ihrer Webserver.

Konfigurieren der HAproxy-Überwachung

Mit der HAproxy-Überwachung können Sie viele Informationen anzeigen, einschließlich Serverstatus, übertragene Daten, Betriebszeit, Sitzungsrate usw. Um die HAproxy-Überwachung zu konfigurieren, fügen Sie die folgenden Zeilen in die Konfigurationsdatei unter /etc/haproxy/haproxy.cfg:

Statistiken anhören
192 . binden.168.72.157:8080
Modus http
Option weiterleitenfor
Option httpclose
Statistiken aktivieren
Statistik-Show-Legenden
Statistiken aktualisieren 5s
Statistiken uri /stats
Statistik-Realm Haproxy\ Statistik
stats auth kbuzdar:kbuzdar            #Login Benutzer und Passwort für die Überwachung
Statistikadministrator wenn WAHR
default_backend Web-Backend

Die obige Konfiguration aktiviert den HAproxy “Statistiken†Seite mit der Statistiken Richtlinie und sichert sie mit http Basisauthentifizierung mit Benutzername und Passwort, die von der defined Statistik-Authentifizierung Direktive.

Wenn Sie mit den Konfigurationen fertig sind, speichern und schließen Sie das glücklich.cfg-Datei.

Überprüfen Sie nun die Konfigurationsdatei mit dem folgenden Befehl im Terminal:

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

Die folgende Ausgabe zeigt, dass die Konfigurationen korrekt sind.

Um nun die Konfigurationen anzuwenden, starten Sie den HAproxy-Dienst neu:

$ sudo systemctl haproxy neustarten.Bedienung

Es stoppt und startet dann den HAproxy-Dienst.

Um den Status des HAproxy-Dienstes zu überprüfen, lautet der Befehl:

$ sudo systemctl status haproxy.Bedienung

Das aktiv (laufend) Status in der folgenden Ausgabe zeigt an, dass der HAproxy-Server aktiviert ist und einwandfrei läuft.

Hier sind einige andere Befehle zum Verwalten des HAproxy-Servers:

Um den HAproxy-Server zu starten, lautet der Befehl:

$ sudo systemctl starte haproxy.Bedienung

Um den HAproxy-Server zu stoppen, lautet der Befehl:

$ sudo systemctl stop haproxy.Bedienung

Falls Sie den HAproxy-Server vorübergehend deaktivieren möchten, lautet der Befehl:

$ sudo systemctl deaktivieren haproxy.Bedienung

Um den HAproxy-Server wieder zu aktivieren, lautet der Befehl:

$ sudo systemctl aktivieren haproxy.Bedienung

HAproxy testen

Stellen Sie vor dem Testen des HAproxy-Setups sicher, dass Sie über eine Verbindung zu Webservern verfügen. Pingen Sie von Ihrem HAproxy-Server aus beide Webserver entweder über ihre IP-Adressen oder Hostnamen an.

$ ping Hostname-oder-IP-Adresse

Die folgende Ausgabe zeigt, dass der HAproxy-Server beide Webserver erreichen kann.

Testen Sie den HA-Proxy mit einem Webbrowser

Öffnen Sie jetzt auf Ihrem HAproxy-Server einen beliebigen Webbrowser und geben Sie ein http:// gefolgt von der HAproxy-Server-IP-Adresse, die in unserem Fall 192 . ist.168.72.157.

http://192.168.72.157

Der HAproxy-Server sendet die Anfrage alternativ im Round-Robin-Verfahren an beide Webserver. Sie können dies testen, indem Sie die Webseite einige Male neu laden.

Dies ist die Antwort, die wir erhalten haben, als wir die http://192 . besucht haben.168.72.157 zum ersten Mal:

Dies ist die Antwort, die wir beim erneuten Laden der Webseite erhalten haben:

Sie können auch den Hostnamen anstelle der IP-Adresse des HAproxy-Servers verwenden.

Testen Sie den HA-Proxy mit curl

Sie können auch den curl-Befehl in Linux verwenden, um das HAproxy-Setup zu testen. Öffne das Terminal und tippe ein Locken gefolgt von der IP-Adresse oder dem Hostnamen des HAproxy-Servers.

$ curl 192.168.72.157

oder

$ curl HAproxy

Führen Sie den curl-Befehl einige Male aus und Sie sehen die Antwort abwechselnd zwischen beiden Webservern.

Anstatt die Befehle mehrmals auszuführen, können Sie auch das folgende einzeilige Skript ausführen, um den HAproxy-Server zu testen:

$ while true; locken 192.168.72.157; Schlaf 1; getan

Testen der HAproxy-Überwachung

Um auf die HAproxy-Überwachungsseite zuzugreifen, geben Sie http:// gefolgt von IP-Adresse/Hostname des HAproxy-Servers und Port 8080/stats:

http://192.168.72.157:8080/stats

oder

http://HAproxy:8080/stats

Das folgende Authentifizierungsfeld wird angezeigt. Eingeben der Nutzername und Passwort Sie zuvor in den Konfigurationen konfiguriert haben, und drücken Sie dann OK.

Dies ist der Statistikbericht für unseren HAproxy-Server.

Dort haben Sie die Installation und Konfiguration von HAproxy Load Balancer auf dem Linux-System. Wir haben gerade die grundlegende Einrichtung und Konfiguration von HAproxy als Load Balancer für Apache-Webserver besprochen. Wir haben uns auch einige Befehle zur Verwaltung des HAproxy-Servers angesehen. Am Ende haben wir den Load-Balancing über den Browser und den curl-Befehl getestet. Weitere Informationen finden Sie in der offiziellen HAproxy-Dokumentation

So installieren Sie Ubuntu neu und schützen Ihre Daten im Falle eines Systemausfalls!
Im Falle eines vollständigen Systemausfalls, bei dem Ihr Ubuntu trotz ausgeführtem Grub-Reparaturtool nicht booten kann, haben Sie keine andere Wahl, ...
So setzen Sie das Root-Passwort in Ubuntu 17 zurück.10
Egal, ob Sie ein ausgezeichnetes Gedächtnis haben und ein perfekt organisierter Mensch sind, es passiert jedem einen oder anderen Tag - Passwort verge...
So aktivieren Sie den Nachtlichtmodus in Ubuntu 17.10
Der Nachtlichtmodus gibt es schon seit einiger Zeit in Smartphones und Tablets. Es ist in einigen Linux-Distributionen als Funktion enthalten, die dur...