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

So Richten Sie Haproxy Als Load Balancer Fur Nginx In Centos 8 Ein



High Availability Proxy, auch als HAProxy abgekürzt, ist ein leichter und schneller Load Balancer, der auch als Proxy-Server fungiert. Als Load Balancer spielt es eine entscheidende Rolle bei der Verteilung des eingehenden Webverkehrs auf mehrere Webserver anhand bestimmter Kriterien. Dadurch gewährleistet es eine hohe Verfügbarkeit und Fehlertoleranz für den Fall, dass zu viele gleichzeitige Anfragen einen einzelnen Webserver überlasten könnten.

HaProxy wird von beliebten Websites wie Tumblr, GitHub und StackOverflow verwendet. In diesem Leitfaden 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 gezeigt







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 wie gezeigt enthält



$ Weil / etc / Gastgeber
3.19.229.234   server_01
3.17.9.217     server-02



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





Gehen Sie jetzt 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 aus 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: Installieren und konfigurieren Sie den HA-Proxy auf dem Load Balancer

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

Aber wie immer zuerst das System aktualisieren

# Yum Update

Installieren Sie als Nächstes den HA-Proxy wie gezeigt

# Yum installieren glücklich

Navigieren Sie nach erfolgreicher Installation zum Haproxy-Verzeichnis.

# CD / etc / glücklich

Best Practice erfordert, dass wir jede Konfigurationsdatei sichern, bevor wir Änderungen vornehmen. Also Backup der haproxy.cfg Datei durch Umbenennen.

# mv haproxy.cfg  haproxy.cfg.bak

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

Weil haproxy.cfg

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

#------------------------------------------------------------- --------------------
# Globale Einstellungen
#------------------------------------------------------------- --------------------
global
log         127.0.0.1 local2 #Protokollkonfiguration

Chroot / war / lib / glücklich
pid-Datei / war / Lauf / haproxy.pid
maxconn 4000
Benutzer        haproxy #Haproxy läuft unter Benutzer und Gruppe 'haproxy'
Gruppe       Haproxy
Dämon

# Statistik-Unix-Socket einschalten
Statistik-Buchse / war / lib / glücklich / Statistiken

#------------------------------------------------------------- --------------------
# allgemeine Standardeinstellungen, die alle Abschnitte 'listen' und 'backend' haben
# verwenden, wenn nicht in ihrem Block angegeben
#------------------------------------------------------------- --------------------
Voreinstellungen
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-request    10s
Timeout-Warteschlange           1 Min
Zeitüberschreitung Verbindung         10 s
Zeitüberschreitung Client          1 Min
Timeout-Server          1 Min
timeout http-keep-alive 10s
Zeitüberschreitung           10 s
maxconn 3000

#------------------------------------------------------------- --------------------
#HAProxy-Überwachungskonfiguration
#------------------------------------------------------------- --------------------
höre haproxy3-monitoring * : 8080 #Haproxy Monitoring wird auf Port 8080 ausgeführt
Modus http
Option weiterleitenfür
Option httpclose
Statistiken aktivieren
Statistiken zeigen Legenden
Statistikaktualisierung 5s
Statistiken uri / Statistiken #URL für die HAProxy-Überwachung
Statistikbereich Haproxy\ Statistiken
Statistik-Authentifizierung Passwort123: Passwort123 #Benutzer und Passwort für die Anmeldung am Überwachungs-Dashboard
Statistik-Administrator wenn WAHR
default_backend App-Main #Dies ist optional für die Überwachung des Backends

#------------------------------------------------------------- --------------------
# Frontend-Konfiguration
#------------------------------------------------------------- --------------------
Frontend Haupt
binden * : 80
Option http-server-close
Option weiterleitenfür
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:\ lokaler Host
#Überprüfen Sie, ob die Serveranwendung aktiv und funktionsfähig ist – Statuscode 200

server server_01 3.19.229.234: 80 prüfen #Nginx1

server server_02 3.17.9.217: 80 prüfen #Nginx2

Stellen Sie sicher, dass Sie den Hostnamen und die IP-Adressen des Webservers wie in den letzten beiden Zeilen angegeben ändern. Speichern Sie die Änderungen und beenden Sie.

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

# Weil / 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 haproxy.conf

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

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

local2.=info / war / Protokoll / haproxy-access.log #Für Zugriffsprotokoll
local2.notice / war / Protokoll / haproxy-info.log #Für Serviceinformationen - Backend, Loadbalancer

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

# systemctl startet rsyslog neu

Starten und aktivieren Sie dann HAProxy

# systemctl rsyslog starten
# systemctl aktiviert rsyslog

Stellen Sie sicher, dass HAProxy ausgeführt wird

# systemctl-Status rsyslog

Schritt 3: Nginx installieren und konfigurieren

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

# Yum Update

Als nächstes installieren Sie EPEL (Extra Packages for Enterprise Linux)

# Yum installieren warme Freigabe

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

# Yum installieren nginx

Als nächstes starten und aktivieren Sie Nginx

# systemctl nginx starten
# systemctl aktiviert nginx

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

Für server_01

# Echo 'server_01. Hey ! Willkommen beim ersten Webserver' > index.html

Für server_02

# Echo 'server_02. Hey ! Willkommen auf dem zweiten Webserver' > index.html

Damit die Änderungen wirksam werden, starten Sie Nginx neu

# systemctl startet nginx neu

Schritt 4: Testen, ob der Load Balancer funktioniert

Endlich sind wir 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.html von server_01 und server_02 zeigt

Lassen Sie uns nun mit einem Webbrowser testen. Durchsuchen Sie die IP-Adresse Ihres Load Balancers

http: // Load-Balancer-IP-Adresse

Auf der ersten Seite werden Inhalte von allen Webservern angezeigt


Aktualisieren Sie nun die Webseite und prüfen Sie, ob sie Inhalte vom anderen Webserver anzeigt

Perfekt ! Der Lastausgleich verteilt den IP-Verkehr gleichmäßig zwischen den beiden Webservern!
Damit ist dieses Tutorial zur Installation und Konfiguration von HAProxy unter CentOS 8 abgeschlossen. Ihr Feedback wird sehr geschätzt.