GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Rocky Linux/Alma Linux 8

Haproxy ist aufgrund seiner Effizienz, Zuverlässigkeit und seines geringen Speicher- und CPU-Fußabdrucks beliebt für den Lastausgleich. Load-Balancing ist eine gängige Lösung für die horizontale Verteilung von Webanwendungen auf mehrere Hosts, während den Nutzern ein einziger Zugriffspunkt auf den Dienst bereitgestellt wird.

Es ist für die Installation auf den wichtigsten Linux-Distributionen verfügbar. In diesem Handbuch erfahren Sie, wie Sie HAProxy Load Balancer unter Rocky Linux 8 installieren und konfigurieren. Dieses Handbuch funktioniert auch mit anderen RHEL 8-basierten Distributionen wie Alma Linux und Oracle Linux.

Überprüfen Sie auch:

  • So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Debian 11
  • So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Ubuntu 20.04

HAProxy-Load-Balancing-Algorithmen

Die Ausgleichsalgorithmen werden verwendet, um zu entscheiden, zu welchem ​​Server im Backend jede Verbindung übertragen wird. Einige der nützlichen Optionen umfassen die folgenden:

  • Roundrobin: Jeder Server wird abwechselnd entsprechend seiner Gewichtung verwendet. Dies ist der reibungsloseste und fairste Algorithmus, wenn die Verarbeitungszeit der Server gleichmäßig verteilt bleibt. Dieser Algorithmus ist dynamisch, sodass die Servergewichte spontan angepasst werden können.
  • Leastconn:Der Server mit der niedrigsten Anzahl an Verbindungen wird ausgewählt. Round-Robin wird zwischen Servern mit derselben Last durchgeführt. Die Verwendung dieses Algorithmus wird bei langen Sitzungen wie LDAP, SQL, TSE usw. empfohlen, ist aber nicht sehr gut für kurze Sitzungen wie HTTP geeignet.
  • Erster: Der erste Server mit verfügbaren Verbindungsslots erhält die Verbindung. Die Server werden von der niedrigsten numerischen Kennung bis zur höchsten ausgewählt, was standardmäßig der Position des Servers in der Farm entspricht. Sobald ein Server seinen maxconn-Wert erreicht, wird der nächste Server verwendet.
  • Quelle:Die Quell-IP-Adresse wird gehasht und durch die Gesamtgewichtung der laufenden Server geteilt, um anzugeben, welcher Server die Anfrage erhält. Auf diese Weise erreicht dieselbe Client-IP-Adresse immer denselben Server, während die Server gleich bleiben.

Inhaltsverzeichnis

  1. Sicherstellen, dass der Server auf dem neuesten Stand ist
  2. HAProxy installieren
  3. Konfigurieren von HAProxy als Loadbalancer
  4. Testen der Einrichtung

1. Sicherstellen, dass der Server auf dem neuesten Stand ist

Bevor Sie fortfahren, stellen Sie sicher, dass der Server auf dem neuesten Stand ist. Verwenden Sie diesen Befehl, um dies zu erreichen:

sudo dnf -y update

2. Haproxy installieren

Das Paket, das Haproxy bereitstellt, ist in den standardmäßigen Rocky Linux Repos verfügbar. Installieren Sie mit diesem Befehl:

sudo dnf install -y haproxy

Bestätigen Sie die Installation mit diesem Befehl:

$ rpm -qi haproxy
Name        : haproxy
Version     : 1.8.27
Release     : 2.el8
Architecture: x86_64
Install Date: Tue 11 Jan 2022 09:39:45 PM UTC
Group       : System Environment/Daemons
Size        : 4446585
License     : GPLv2+
Signature   : RSA/SHA256, Wed 19 May 2021 05:13:23 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : haproxy-1.8.27-2.el8.src.rpm
Build Date  : Wed 19 May 2021 02:37:50 AM UTC
Build Host  : ord1-prod-x86build004.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://www.haproxy.org/
Summary     : HAProxy reverse proxy for high availability environments
Description :
HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high
availability environments. Indeed, it can:
 - route HTTP requests depending on statically assigned cookies
 - spread load among several servers while assuring server persistence
   through the use of HTTP cookies
 - switch to backup servers in the event a main one fails
 - accept connections to special ports dedicated to service monitoring
 - stop accepting connections without breaking existing ones
 - add, modify, and delete HTTP headers in both directions
 - block requests matching particular patterns
 - report detailed status to authenticated users from a URI
   intercepted from the application

Sie können die installierte Versionsnummer mit dem folgenden Befehl überprüfen.

haproxy -v

Dies ist die Ausgabe auf meinem Rechner

$ haproxy -v
HA-Proxy version 1.8.27-493ce0b 2020/11/06
Copyright 2000-2020 Willy Tarreau <[email protected]>

Die Installation ist dann abgeschlossen. Fahren Sie unten mit den Anweisungen fort, wie Sie den Load Balancer konfigurieren, um Anfragen an Ihre Webserver umzuleiten.

3. HAProxy als Load Balancer konfigurieren

Um HAProxy als Load Balancer zu konfigurieren, müssen wir ihm mitteilen, auf welche Art von Verbindungen er lauschen soll und wohin die Verbindungen weitergeleitet werden sollen. Dazu erstellen Sie eine Konfigurationsdatei /etc/haproxy/haproxy.cfg mit den definierenden Einstellungen.

Load-Balancing auf Schicht 4

Nach der Installation verfügt HAProxy bereits über eine Vorlage zum Konfigurieren des Lastenausgleichs. Öffnen Sie die Konfigurationsdatei mit Ihrem Texteditor, ich verwende vim:

sudo vim /etc/haproxy/haproxy.cfg

Fügen Sie diesen Inhalt hinzu, um die Listening-Schnittstelle und die Back-End-Schnittstelle zu konfigurieren, auf die der Datenverkehr verteilt wird.

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server <server1 name> <private IP 1>:80 check
   server <server2 name> <private IP 2>:80 check

Ersetzen Sie auf der Statistikseite den  durch die gewünschte Bezeichnung Ihrer Server und die  durch die privaten IPs der Server, an die Sie den Webverkehr leiten möchten. Dies ist die Konfiguration, die ich auf meinem Server verwende

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server web_server_1 10.70.5.41:80 check
   server web_server_2 10.70.5.187:80 check

Das Obige definiert einen Layer-4-Load-Balancer mit einem Front-End-Namen http_front , der auf die Portnummer 80 lauscht, der den Datenverkehr dann an das Standard-Back-End mit dem Namen http_back weiterleitet. Der zusätzliche Statistik-URI /haproxy?stats aktiviert die Statistikseite unter dieser angegebenen Adresse.

Load-Balancing auf Layer 7

Wir können den Load Balancer auch so konfigurieren, dass er auf Layer 7 arbeitet. Dies ist nützlich, wenn sich Teile Ihrer Webanwendung auf verschiedenen Hosts befinden. Dies kann durch Konditionierung der Verbindungsübergabe zB durch die URL erreicht werden.

Öffnen Sie die Konfigurationsdatei mit Ihrem Texteditor, ich verwende vim:

sudo vim /etc/haproxy/haproxy.cfg

Fügen Sie dann diese Konfiguration hinzu

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

backend blog_back
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

Das Front-End deklariert eine ACL-Regel namens url_blog , die für alle Verbindungen mit Pfaden gilt, die mit /blog beginnen. Use_backend definiert, dass Verbindungen, die der Bedingung url_blog entsprechen, vom Backend namens blog_back bereitgestellt werden sollen, während alle anderen Anfragen vom Standard-Backend verarbeitet werden.

Auf der Backend-Seite richtet die Konfiguration zwei Servergruppen ein, http_back wie zuvor und die neue mit dem Namen blog_back , die speziell Verbindungen zu example.com/blog bereitstellt.

Nachdem Sie die Konfigurationen vorgenommen haben, speichern Sie die Datei und starten Sie HAProxy mit dem nächsten Befehl neu.

sudo systemctl restart haproxy

Wenn Sie beim Start Fehler oder Warnungen erhalten, überprüfen Sie die Konfiguration auf Tippfehler und versuchen Sie dann erneut, neu zu starten.

SSL konfigurieren

Wenn Sie eine private Schlüsseldatei und eine Zertifikatsdatei haben, die Sie mit HAProxy verwenden möchten, kombinieren Sie sie mit diesem Befehl.

cat citizix.fullchain.pem citizix.key > citizix.pem

Konfigurieren Sie dann HAProxy so, dass das SSL-Zertifikat auf dem Frontend verwendet wird.

frontend http_front
        bind *:80
        bind *:443 ssl crt /etc/letsencrypt/live/apps.citizix.com/citizix.pem 

4. Einrichtung testen

Öffnen Sie bei konfiguriertem und ausgeführtem HAProxy die öffentliche IP Ihres Load Balancer-Servers in einem Webbrowser und überprüfen Sie, ob Sie korrekt mit Ihrem Backend verbunden sind. Der Parameter stats uri in der Konfiguration aktiviert die Statistikseite unter der definierten Adresse.

http://<Haproxy public IP>/haproxy?stats

Wenn Sie die Statistikseite laden und alle Ihre Server grün aufgelistet sind, war Ihre Konfiguration erfolgreich!

Die Statistikseite enthält einige hilfreiche Informationen, um Ihre Webhosts im Auge zu behalten, einschließlich Betriebs- und Ausfallzeiten und Sitzungszahlen. Wenn ein Server rot aufgeführt ist, überprüfen Sie, ob der Server eingeschaltet ist und Sie ihn vom Load-Balancer-Rechner aus anpingen können.

Falls Ihr Load-Balancer nicht antwortet, überprüfen Sie, ob HTTP-Verbindungen nicht von einer Firewall blockiert werden. Bestätigen Sie außerdem mit dem folgenden Befehl, dass HAProxy ausgeführt wird.

sudo systemctl status haproxy

5. Passwortschutz der Statistikseite

Die Statistikseite einfach am Frontend auflisten zu lassen, ist jedoch für jedermann öffentlich zugänglich, was vielleicht keine so gute Idee ist. Stattdessen können Sie es auf eine eigene Portnummer einrichten, indem Sie das folgende Beispiel am Ende Ihrer haproxy.cfg hinzufügen Datei. Ersetzen Sie den Nutzernamen und das Passwort durch etwas Sicheres.

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy\ Statistics
   stats auth username:password

Nachdem Sie die neue Listengruppe hinzugefügt haben, entfernen Sie den alten Verweis auf die Statistik-URI aus der Front-End-Gruppe. Wenn Sie fertig sind, speichern Sie die Datei und starten Sie HAProxy erneut.

sudo systemctl restart haproxy

Öffnen Sie dann den Load Balancer erneut mit der neuen Portnummer und melden Sie sich mit dem Benutzernamen und dem Passwort an, die Sie in der Konfigurationsdatei festgelegt haben.

http://<load balancer public IP>:8181

Überprüfen Sie, ob Ihre Server immer noch alles grün melden, und öffnen Sie dann nur die Load-Balancer-IP ohne Portnummern in Ihrem Webbrowser.

http://<load balancer public IP>/

Wenn Ihre Backend-Server zumindest leicht unterschiedliche Zielseiten haben, werden Sie feststellen, dass Sie jedes Mal, wenn Sie die Seite neu laden, die Antwort von einem anderen Host erhalten.

Schlussfolgerungen

Das ist es! In diesem Handbuch haben wir gelernt, wie HAProxy installiert und konfiguriert wird, um den Datenverkehr auszugleichen. Dies erhöht die Leistung und Verfügbarkeit Ihrer Webanwendung.


Rocky Linux
  1. So installieren und konfigurieren Sie Fail2ban unter Alma Linux 8

  2. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Rocky Linux/Alma Linux 8

  3. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Debian 11

  4. So installieren Sie NodeJS und NPM auf Rocky Linux/Alma Linux 8

  5. So installieren und konfigurieren Sie Memcached unter Rocky Linux/Alma Linux 8

So installieren und konfigurieren Sie HAProxy unter Rocky Linux 8

So installieren und verwenden Sie Podman in Rocky Linux/Alma Linux/Centos 8

So installieren Sie PHP 8 auf Alma Linux &Rocky Linux

So installieren und konfigurieren Sie Mono unter Rocky Linux 8 und CentOS 8

So installieren und konfigurieren Sie TensorFlow unter Rocky Linux 8

So installieren und konfigurieren Sie OpenCV unter Rocky Linux 8.4