HAProxy

So richten Sie HAProxy als Load Balancer für Nginx in CentOS 8 ein

So richten Sie HAProxy als Load Balancer für Nginx in CentOS 8 ein
High Availability Proxy, auch abgekürzt als HAProxy, ist ein leichter und schneller Load Balancer, der auch als Proxy-Server dient. Als Load Balancer spielt er eine entscheidende Rolle bei der Verteilung des eingehenden Webdatenverkehrs auf mehrere Webserver nach bestimmten Kriterien. Dabei sorgt es für hohe Verfügbarkeit und Fehlertoleranz bei zu vielen gleichzeitigen Anfragen, die einen einzelnen Webserver überlasten können.

HaProxy wird von beliebten Websites wie Tumblr, GitHub und StackOverflow verwendet. In dieser Anleitung führen wir Sie durch die Installation von HAProxy in einem Setup von Webservern, die mit Nginx betrieben werden.

Laboreinrichtung

3 Instanzen von CentOS 7-Servern wie abgebildet

Hostname           IP-Adressen
load_balancer      3.17.12.132
server_01          3.19.229.234
server_02          3.17.9.217

Schritt 1: Bearbeiten Sie die Datei /etc/hosts für den Load Balancer

Melden Sie sich zunächst beim Load-Balancer-System an und ändern Sie die Datei /etc/hosts so, dass sie die Hostnamen und IP-Adressen der beiden Webserver enthält, wie gezeigt

$ vim /etc/hosts
3.19.229.234   server_01
3.17.9.217     server-02

Wenn Sie fertig sind, speichern Sie die Änderungen und verlassen Sie die Konfigurationsdatei.

Gehen Sie nun zu jedem der Webserver und aktualisieren Sie die /etc/hosts Datei mit der IP-Adresse und dem Hostnamen des Load Balancers

3.17.12.132   Load-Balancer

Bestätigen Sie anschließend, dass Sie den Load-Balancer von server_01 anpingen können

Und ebenso von server_02

Stellen Sie außerdem sicher, dass Sie die Server vom Load Balancer aus anpingen können.

Perfekt ! alle Server können mit dem Load Balancer kommunizieren!

Schritt 2: HA-Proxy auf dem Load Balancer installieren und konfigurieren

Da HA Proxy im offiziellen CentOS-Repository verfügbar ist, werden wir es mit dem Paketmanager yum oder dnf installieren.

Aber wie immer zuerst das System aktualisieren

# leckeres Update

Als nächstes installieren Sie HA Proxy wie gezeigt as

# lecker installiere haproxy

Navigieren Sie nach erfolgreicher Installation zum haproxy-Verzeichnis.

# cd /etc/haproxy

Best Practice erfordert, dass wir alle Konfigurationsdateien sichern, bevor wir Änderungen vornehmen.  Also sichern Sie die glücklich.cfg Datei umbenennen.

# mv haproxy.cfg haproxy.cfg.backen

Fahren Sie als nächstes fort und öffnen Sie die Konfigurationsdatei

vim haproxy.cfg

Stellen Sie sicher, dass Sie die Änderung wie gezeigt vornehmen

#---------------------------------------------------------------------
# Globale Einstellungen
#---------------------------------------------------------------------
global
log         127.0.0.1 local2     #Log-Konfiguration
 
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy             #Haproxy wird unter Benutzer und Gruppe "haproxy" ausgeführt
Gruppe       haproxy
Dämon
 
# Statistik Unix-Socket einschalten
Statistik-Socket /var/lib/haproxy/stats
 
#---------------------------------------------------------------------
# gemeinsame Standardeinstellungen, die alle Abschnitte "hören" und "backend" verwenden
# verwenden, wenn nicht in ihrem Block angegeben
#---------------------------------------------------------------------
Standardeinstellungen
Modus                    http
log                     global
Option                  httplog
Option                  dontlognull
Option http-server-close
Option forwardfor       außer 127.0.0.0/8
Option                  Redispatch
wiederholt                 3
Timeout http-Anfrage    10 s
Timeout-Warteschlange           1 m
Zeitüberschreitung Verbindung         10 s
Timeout-Client          1 m
Timeout-Server          1m
Timeout http-keep-alive 10s
Zeitüberschreitung           10 s
maxconn                 3000
 
#---------------------------------------------------------------------
#HAProxy-Überwachungskonfiguration
#---------------------------------------------------------------------
listen haproxy3-monitoring *:8080                #Haproxy Monitoring läuft auf Port 8080
Modus http
Option weiterleitenfor
Option httpclose
Statistiken aktivieren
Statistik-Show-Legenden
Statistiken aktualisieren 5s
stats uri /stats                             #URL für HAProxy-Monitoring
Statistik-Realm Haproxy\ Statistik
stats auth Password123: Password123#User und Passwort für die Anmeldung am Monitoring-Dashboard
Statistikadministrator wenn WAHR
default_backend app-main                    #Dies ist optional für die Überwachung des Backends
 
#---------------------------------------------------------------------
# FrontEnd-Konfiguration
#---------------------------------------------------------------------
Frontend-Hauptmenü
binden *:80
Option http-server-close
Option weiterleitenfor
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd Round-Robin als Balance-Algorithmus
#---------------------------------------------------------------------
Backend-App-Main
Balance Roundrobin                         #Balance-Algorithmus
Option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
#Überprüfen Sie, ob die Serveranwendung aktiv und funktionsfähig ist - 200 Statuscode
server server_01 3.19.229.234:80 check               #Nginx1
server server_02 3.17.9.217:80 check                 #Nginx2

Achten Sie darauf, den Hostnamen und die IP-Adressen des Webservers wie in den letzten beiden Zeilen angegeben zu ändern modify. Änderungen speichern und beenden.

Der nächste Schritt besteht darin, Rsyslog so zu konfigurieren, dass es HAProxy-Statistiken protokollieren kann.

# vim /etc/rsyslog.conf

Stellen Sie sicher, dass Sie die folgenden Zeilen auskommentieren, um UDP-Verbindungen zuzulassen

$ModLoad imudp
$UDPServerRun 514

Fahren Sie als Nächstes fort und erstellen Sie eine neue Konfigurationsdatei  glücklich.conf

# vim  /etc/rsyslog.d/haproxy.conf

Fügen Sie die folgenden Zeilen ein, speichern und beenden Sie and

lokal2.=info   /var/log/haproxy-access.log   #Für Zugriffsprotokoll
lokal2.Hinweis  /var/log/haproxy-info.log     #For Service Info – Backend, Loadbalancer

Damit die Änderungen wirksam werden, starten Sie den rsyslog-Daemon wie gezeigt neu:

# systemctl rsyslog neu starten

Dann starten und aktivieren Sie HAProxy

# systemctl starte rsyslog
# systemctl rsyslog aktivieren

Stellen Sie sicher, dass HAProxy ausgeführt wird

# systemctl-status rsyslog

Schritt 3: Nginx installieren und konfigurieren

Jetzt fehlt nur noch die Installation von Nginx. Melden Sie sich bei jedem der Server an und aktualisieren Sie zuerst die Systempakete:

# leckeres Update

Als nächstes installieren  EPEL (Zusatzpakete für Enterprise Linux)

# yum installiere epel-release

Führen Sie den Befehl aus, um Nginx zu installieren:

# lecker installiere nginx

Als nächstes starten und aktivieren Sie Nginx

# systemctl starte nginx
# systemctl nginx aktivieren

Wir werden dann den Index ändern.html-Datei in beiden Fällen, um zu demonstrieren oder zu simulieren, wie der Load Balancer den Webverkehr auf beide Server verteilen kann.

Für server_01

# echo "server_01. Hallo ! Willkommen beim ersten Webserver" > index.html

Für server_02

# echo "server_02. Hallo ! Willkommen auf dem zweiten Webserver" > index.html

Damit die Änderungen wirksam werden, starten Sie Nginx neu

# systemctl nginx neu starten

Schritt 4: Testen, ob der Load Balancer funktioniert

Wir sind endlich an dem Punkt angelangt, an dem wir sehen wollen, ob die Konfiguration funktioniert. Melden Sie sich also beim Load Balancer an und führen Sie den curl-Befehl wiederholt aus

# curl 3.17.12.132

Sie sollten eine abwechselnde Ausgabe auf dem Terminal erhalten, die den Wert von index anzeigt.html  von server_01 und server_02

Jetzt testen wir mit einem Webbrowser. Durchsuchen Sie die IP-Adresse Ihres Load Balancers

http://Load-Balancer-IP-Adresse

Auf der ersten Seite werden Inhalte von einem der Webserver angezeigt


Aktualisieren Sie nun die Webseite und prüfen Sie, ob Inhalte vom anderen Webserver angezeigt werden

Perfekt ! Der Lastenausgleich verteilt den IP-Verkehr gleichmäßig zwischen den beiden Webservern !
Dies schließt dieses Tutorial ab, wie Sie HAProxy auf CentOS 8 installieren und konfigurieren können. Ihr Feedback wird sehr geschätzt.

Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...