Wie man HAProxy auf Rocky Linux 8 installiert und konfiguriert

Wenn du eine Anwendung im Internet bereitstellst, sind die Verfügbarkeit, Skalierbarkeit und Leistung der Anwendung sehr wichtig für ein besseres Nutzererlebnis. Es gibt viele Technologien, die Redundanz einführen, wie Load Balancing, Clustering und Proxy.

HAProxy ist ein kostenloser, quelloffener und zuverlässiger Load Balancer, der für Websites mit hohem Traffic entwickelt wurde. Er sorgt für einen Lastausgleich des eingehenden Traffics, indem er ihn auf mehrere Backend-Server verteilt.

In diesem Artikel zeigen wir dir, wie du HAProxy auf Rocky Linux 8 installieren kannst.

Für den 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 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

HAProxy installieren

Standardmäßig ist das HAProxy-Paket im Rocky Linux 8 Standard-Repo verfügbar. Du kannst es mit dem folgenden Kommando installieren:

dnf install haproxy -y

Sobald der HAProxy installiert ist, starte den HAProxy-Dienst und aktiviere ihn so, dass er beim Neustart des Systems startet:

systemctl start haproxy
systemctl enable haproxy

HAProxy konfigurieren

Als nächstes musst du die Datei /etc/haproxy/haproxy.cfg bearbeiten und zwei Abschnitte Frontend und Backend ändern. In der Frontend Sektion musst du die HAProxy IP, den Port, die stats URI und den Backend Namen definieren. Im Abschnitt Backend musst du den Lastausgleichsalgorithmus, den Namen des Backend-Servers, die IPs und den Port definieren.

nano /etc/haproxy/haproxy.cfg

Ändere die folgenden Abschnitte:

frontend http_balancer
    bind 172.16.10.10:80
    option http-server-close
    option forwardfor
    stats uri /haproxy?stats

default_backend     Apache_webservers

backend apache_webservers
    mode        http
    balance     roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost    
    server  apache1  172.16.10.11:80  check
    server  apache2  172.16.10.12:80  check

Speichere und schließe die Datei, wenn du fertig bist, dann musst du die Datei /etc/rsyslog.conf bearbeiten.

nano /etc/rsyslog.conf

Entferne die Kommentare in den folgenden Zeilen:

module(load="imudp")
input(type="imudp" port="514")

Speichere und schließe die Datei und erstelle dann die Datei haproxy.conf für rsyslog mit dem folgenden Befehl:

nano /etc/rsyslog.d/haproxy.conf

Füge die folgenden Zeilen hinzu:

local2.=info     /var/log/haproxy-access.log
local2.notice    /var/log/haproxy-info.log

Als nächstes starte den rsyslog-Dienst und aktiviere ihn, damit er beim Neustart des Systems startet:

systemctl start rsyslog
systemctl enable rsyslog

Zum Schluss starte den HAProxy-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart haproxy

Du kannst den Status des HAProxy-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status haproxy

Du solltest die folgende Ausgabe sehen:

? haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago
  Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 44036 (haproxy)
    Tasks: 2 (limit: 12524)
   Memory: 3.1M
   CGroup: /system.slice/haproxy.service
           ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
           ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer...
Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.

Firewall konfigurieren

Als nächstes musst du die Firewall auf allen Servern konfigurieren und Port 80 durch die Firewall zulassen.

Du kannst den folgenden Befehl ausführen, um Port 80 zu erlauben:

firewall-cmd --permanent --add-port=80/tcp

Als nächstes musst du den firewalld Dienst neu laden, um die Änderungen zu übernehmen.

firewall-cmd --reload

Backend-Server konfigurieren

Als nächstes musst du den Apache Server auf beiden Backend Servern installieren. Führe den folgenden Befehl aus, um den Apache Server zu installieren.

dnf install httpd -y

Sobald der Apache Server installiert ist, starte den Apache Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start httpd
systemctl enable httpd

Als nächstes musst du die Standard index.html Datei auf beiden Backend Servern ändern.

Auf dem ersten Backend editierst du die index.html Datei mit dem folgenden Befehl:

nano /usr/share/httpd/noindex/index.html

Entferne alle Zeilen und füge die folgende Zeile hinzu:

Welcome to First Apache Web Server!

Speichere und schließe die Datei, wenn du fertig bist.

Auf dem zweiten Backend bearbeitest du die Datei index.html mit dem folgenden Befehl:

nano /usr/share/httpd/noindex/index.html

Entferne alle Zeilen und füge die folgende Zeile hinzu:

Welcome to Second Apache Web Server!

Speichere und schließe die Datei, wenn du fertig bist.

HAProxy verifizieren

An diesem Punkt ist HAProxy so konfiguriert, dass alle eingehenden Anfragen an die Backend-Server weitergeleitet werden, basierend auf dem Lastausgleichsalgorithmus. Nun ist es an der Zeit zu überprüfen, ob HAProxy richtig funktioniert oder nicht.

Öffne deinen Webbrowser und gib die HAProxy IP in der URL http://172.16.10.10 ein. Du solltest deine erste Apache Webserver Seite sehen:

Erster Server

Als nächstes aktualisierst du dieselbe Seite erneut, du solltest deine zweite Apache-Webserver-Seite sehen:

Zweiter Server

Dies bestätigt, dass HAProxy wie erwartet funktioniert und den Datenverkehr zwischen zwei Backend-Servern verteilt.

Fazit

Herzlichen Glückwunsch! Du hast den HAProxy Load Balancer erfolgreich auf Rocky Linux 8 installiert und konfiguriert. Nun kannst du HAProxy in der Produktionsumgebung implementieren, um eine hohe Performance und Skalierbarkeit zu erreichen.

Das könnte dich auch interessieren …