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:
Als nächstes aktualisierst du dieselbe Seite erneut, du solltest deine zweite Apache-Webserver-Seite sehen:
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.