Website-Suche

Einrichten des Lastausgleichs für Webserver mit „POUND“ unter RHEL/CentOS


POUND ist ein Lastausgleichsprogramm, das von der ITSECURITY Company entwickelt wurde. Es handelt sich um ein leichtes Open-Source-Reverse-Proxy-Tool, das als Webserver-Lastausgleichsmodul verwendet werden kann, um die Last auf mehrere Server zu verteilen. POUND bietet dem Endbenutzer mehrere Vorteile, die sehr praktisch sind und die Arbeit richtig erledigen.

  1. Unterstützt virtuelle Hosts.
  2. Konfigurierbar.
  3. Wenn ein Backend-Server ausfällt oder nach einem Ausfall wiederhergestellt wird, erkennt er dies automatisch und richtet seine Lastverteilungsentscheidungen entsprechend aus.
  4. Es lehnt falsche Anfragen ab.
  5. Kein angegebener Browser oder Webserver.

Werfen wir einen Blick darauf, wie dieser Hack durchgeführt werden kann.

Zunächst benötigen Sie ein Szenario, um die Vorgehensweise besser zu verstehen. Daher verwende ich ein Szenario, in dem es zwei Webserver und einen Gateway-Server gibt, der die Anforderungen, die vom Gateway-Server an die Webserver gehen, ausgleichen muss.


Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

Schritt 1: Installieren Sie Pound Load Balancer auf dem Gateway-Server

1. Der einfachste Weg, Pound zu installieren, ist die Verwendung vorkompilierter RPM-Pakete. RPMs für RedHat-basierte Distributionen finden Sie unter:

  1. http://www.invoca.ch/pub/packages/pound/

Alternativ kann Pound wie unten gezeigt einfach aus dem EPEL-Repository installiert werden.


yum install epel-release
yum install Pound

Nachdem Pound installiert wurde, können Sie überprüfen, ob es installiert ist, indem Sie diesen Befehl ausgeben.


rpm –qa |grep Pound

2. Zweitens benötigen Sie zwei Webserver, um die Last auszugleichen und sicherzustellen, dass Sie über eindeutige Kennungen verfügen, um zu testen, ob die Pound-Konfiguration einwandfrei funktioniert.

Hier habe ich zwei Server mit den IP-Adressen 172.16.1.204 und 192.168.1.161.

Zur Vereinfachung der Verwendung habe ich Python SimpleHTTPServer erstellt, um auf beiden Servern einen sofortigen Webserver zu erstellen. Lesen Sie mehr über Python SimpleHTTPServer

In meinem Szenario läuft mein webserver01 auf 172.16.1.204 über Port 8888 und webserver02 auf 192.168.1.161 über Port 5555.

Schritt 2: Konfigurieren Sie den Pound Load Balancer

3. Jetzt ist es an der Zeit, die Konfigurationen vorzunehmen. Sobald Sie Pound erfolgreich installiert haben, wird die Konfigurationsdatei des Pounds in /etc erstellt, nämlich pound.cfg.

Wir müssen die Server- und Backend-Details bearbeiten, um die Last auf die Webserver auszugleichen. Gehen Sie zu /etc und öffnen Sie die Datei pound.cfg zur Bearbeitung.


vi /etc/pound.cfg

Nehmen Sie die Änderungen wie unten vorgeschlagen vor.


ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

So sieht meine pound.cfg-Datei aus.

Unter den Tags „ListenHTTP“ und „ListenHTTPS“ müssen Sie die IP-Adresse des Servers eingeben, auf dem Sie POUND installiert haben.

Standardmäßig verarbeitet ein Server HTTP-Anfragen über Port 80 und HTTPS-Anfragen über Port 443. Unter dem Tag „Service“ können Sie eine beliebige Anzahl von Unter-Tags namens „BackEnd“ hinzufügen. BackEnd-Tags tragen die IP-Adressen und Portnummern, auf denen die Webserver laufen.

Speichern Sie nun die Datei, nachdem Sie sie korrekt bearbeitet haben, und starten Sie den POUND-Dienst neu, indem Sie einen der folgenden Befehle ausführen.


/etc/init.d/pound restart 
OR
service pound restart
OR
systemctl restart pound.service

4. Jetzt ist es an der Zeit, dies zu überprüfen. Öffnen Sie zwei Webbrowser, um zu überprüfen, ob unsere Konfigurationen einwandfrei funktionieren. Geben Sie in der Adressleiste die IP-Adresse Ihres POUND-Gateways ein und sehen Sie, was angezeigt wird.

Die erste Anfrage sollte den ersten webserver01 laden und die zweite Anfrage vom anderen Webbrowser sollte den zweiten webserver02 laden.

Stellen Sie sich außerdem ein Szenario vor, bei dem Sie zwei Webserver zum Lastenausgleich haben und die Leistung eines Servers gut ist und die Leistung des anderen nicht so gut.

Beim Lastausgleich zwischen ihnen müssen Sie also berücksichtigen, auf welchen Server Sie mehr Gewicht legen müssen. Offensichtlich für den Server mit guten Leistungsspezifikationen.

Um die Last auf diese Weise auszugleichen, müssen Sie lediglich einen einzelnen Parameter in die Datei pound.cfg einfügen. Werfen wir einen Blick darauf.

Denken Sie, dass Server 192.168.1.161:5555 der bessere Server ist. Dann müssen Sie mehr Anfragen an diesen Server senden. Fügen Sie unter dem Tag „BackEnd“, der für den Server 192.168.1.161 konfiguriert ist, den Parameter „Priority“ vor dem End-Tag hinzu.

Schauen Sie sich das folgende Beispiel an.

Der Bereich, den wir für den Parameter „Priority“ verwenden können, liegt zwischen 1-9. Wenn wir es nicht definieren, wird der Standardwert 5 zugewiesen.

Dann wird die Last gleichmäßig verteilt. Wenn wir die Prioritätsnummer definieren, lädt POUND den Server mit der höheren Prioritätsnummer häufiger. In diesem Fall wird also 192.168.1.161:5555 häufiger geladen als der Server 172.16.1.204:8888.

Schritt 3: Notfallausfälle planen

Notfall-Tag: Dieses Tag wird verwendet, um einen Server zu laden, falls alle Back-End-Server ausfallen. Sie können es wie folgt vor dem letzten End-Tag von pound.cfg hinzufügen.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND verfolgt immer, welche Backend-Server aktiv sind und welche nicht. Wir können festlegen, nach wie vielen Sekunden POUND die Backend-Server auschecken soll, indem wir den Parameter „Alive“ in pound.cfg hinzufügen.

Sie können den Parameter „Alive 30“ verwenden, um ihn auf 30 Sekunden einzustellen. Pound deaktiviert vorübergehend die Backend-Server, die nicht antworten. Wenn wir sagen, dass der Server nicht antwortet, ist der Server möglicherweise tot oder kann in diesem Moment keine Verbindung herstellen.

POUND überprüft den deaktivierten Backend-Server nach jedem Zeitraum, den Sie in der Datei pound.cfg definiert haben. Wenn der Server eine Verbindung herstellen konnte, kann POUND dann wieder mit dem Server arbeiten.

7. Der POUND-Daemon wird vom Befehl poundctl verwaltet. Dadurch müssen wir die Datei pound.cfg nicht bearbeiten und können Listner Server, BackEnd-Server und -Sitzungen usw. über ausgeben ein einziger Befehl.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c definiert den Pfad zu Ihrem Socket.
  2. -L/-l definiert den Listener Ihrer Architektur.
  3. -S/-s definiert den Dienst.
  4. -B/-b definiert die Backend-Server.

Weitere Informationen finden Sie in den Manpages zu poundctl.

Ich hoffe, Ihnen gefällt dieser Hack und Sie entdecken weitere Optionen dazu. Fühlen Sie sich frei, unten einen Kommentar abzugeben, wenn Sie Vorschläge und Ideen haben. Bleiben Sie mit Tecmint in Verbindung, um praktische und aktuelle Anleitungen zu erhalten.

Lesen Sie auch: Installieren des XR Crossroads Load Balancer für Webserver