Wenn Sie eine Anwendung im Internet bereitstellen, sind die Verfügbarkeit, Skalierbarkeit und Leistung der Anwendung für eine bessere Benutzererfahrung sehr wichtig. Es gibt viele Technologien, die Redundanz einführen, z. B. Lastenausgleich, Clustering und Proxy.
HAProxy ist ein kostenloser, quelloffener und zuverlässiger Load Balancer, der für stark frequentierte Websites entwickelt wurde. Es gleicht den eingehenden Datenverkehr aus, indem es ihn auf mehrere Backend-Server verteilt.
In diesem Artikel zeigen wir Ihnen, wie Sie HAProxy auf Rocky Linux 8 installieren.
Zum Zweck dieses Tutorials verwenden wir das folgende Setup:
Server IP-Adresse
HAProxy 172.16.10.10
Backend1 172.16.10.11
Backend2 172.16.10.12
Voraussetzungen
- Ein Server, auf dem RockyLinux 8 ausgeführt wird.
- Auf dem Server ist ein Root-Passwort konfiguriert.
HAProxy installieren
Standardmäßig ist das HAProxy-Paket im Standard-Repo von Rocky Linux 8 verfügbar. Sie können es mit dem folgenden Befehl installieren:
dnf install haproxy -y
Sobald der HAProxy installiert ist, starten Sie den HAProxy-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:
systemctl start haproxy
systemctl enable haproxy
HAProxy konfigurieren
Als nächstes müssen Sie die Datei /etc/haproxy/haproxy.cfg bearbeiten und zwei Abschnitte Frontend und Backend ändern. Im Frontend-Bereich müssen Sie die HAProxy-IP, ihren Port, Statistik-URI und den Backend-Namen definieren. Im Abschnitt „Backend“ müssen Sie den Load-Balancing-Algorithmus, den Namen, die IPs und den Port des Backend-Servers definieren.
nano /etc/haproxy/haproxy.cfg
Ändern Sie die folgenden Abschnitte:
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?statsdefault_backend Apache_webserversbackend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11 :80 Server prüfen apache2 172.16.10.12:80 prüfen
Speichern und schließen Sie die Datei, wenn Sie fertig sind, dann müssen Sie die Datei /etc/rsyslog.conf bearbeiten.
nano /etc/rsyslog.conf
Entkommentieren Sie die folgenden Zeilen:
module(load="imudp")input(type="imudp" port="514")
Speichern und schließen Sie die Datei und erstellen Sie dann die Datei haproxy.conf für rsyslog mit dem folgenden Befehl:
nano /etc/rsyslog.d/haproxy.conf
Fügen Sie die folgenden Zeilen hinzu:
local2.=info /var/log/haproxy-access.loglocal2.notice /var/log/haproxy-info.log
Starten Sie als Nächstes den rsyslog-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:
systemctl start rsyslog
systemctl enable rsyslog
Starten Sie abschließend den HAProxy-Dienst neu, um die Änderungen zu übernehmen:
systemctl Neustart Haproxy
Sie können den Status des HAProxy-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status haproxy
Sie sollten die folgende Ausgabe sehen:
Firewall konfigurieren
Als nächstes müssen Sie firewalld auf allen Servern konfigurieren und Port 80 durch die Firewall zulassen.
Sie können den folgenden Befehl ausführen, um Port 80 zuzulassen:
firewall-cmd --permanent --add-port=80/tcp
Als nächstes laden Sie den Firewall-Dienst neu, um die Änderungen zu übernehmen.
firewall-cmd --reload
Backend-Server konfigurieren
Als nächstes müssen Sie den Apache-Server auf beiden Backend-Servern installieren. Führen Sie den folgenden Befehl aus, um den Apache-Server zu installieren.
dnf install httpd -y
Starten Sie nach der Installation des Apache-Servers den Apache-Dienst und aktivieren Sie ihn, damit er beim Systemneustart startet:
systemctl start httpd
systemctl enable httpd
Als Nächstes müssen Sie die Standarddatei index.html auf beiden Backend-Servern ändern.
Bearbeiten Sie im ersten Backend die Datei index.html mit dem folgenden Befehl:
nano /usr/share/httpd/noindex/index.html
Entfernen Sie alle Zeilen und fügen Sie die folgende Zeile hinzu:
Willkommen beim ersten Apache-Webserver!
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Bearbeiten Sie im zweiten Backend die Datei index.html mit dem folgenden Befehl:
nano /usr/share/httpd/noindex/index.html
Entfernen Sie alle Zeilen und fügen Sie die folgende Zeile hinzu:
Willkommen beim zweiten Apache-Webserver!
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
HAProxy verifizieren
Zu diesem Zeitpunkt ist HAProxy so konfiguriert, dass alle eingehenden Anfragen basierend auf dem Lastausgleichsalgorithmus an die Backend-Server weitergeleitet werden. Jetzt ist es an der Zeit zu überprüfen, ob HAProxy richtig funktioniert oder nicht.
Öffnen Sie Ihren Webbrowser und geben Sie die HAProxy-IP in die URL http://172.16.10.10 ein . Sie sollten Ihre erste Apache-Webserver-Seite sehen:
Als nächstes aktualisieren Sie dieselbe Seite erneut, Sie sollten Ihre zweite Apache-Webserver-Seite sehen:
Dies bestätigt, dass HAProxy wie erwartet funktioniert und den Datenverkehr zwischen zwei Backend-Servern verteilt.
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den HAProxy-Load-Balancer erfolgreich auf Rocky Linux 8 installiert und konfiguriert. Sie können jetzt HAProxy in der Produktionsumgebung implementieren, um eine hohe Leistung und Skalierbarkeit zu erreichen.