GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie den HAProxy-Load-Balancer

Übersicht

Wir werden die Schritte zum Konfigurieren des HAProxy-Load-Balancers behandeln. HAProxy kann mit Round-Robin-Anweisungen und im Failover-Modus ausgeführt werden, aber es kann auch mit beiden gleichzeitig ausgeführt werden, wodurch HA (High Availability) sichergestellt wird. Abgesehen davon, dass HAProxy nur im Round-Robin-Modus ausgeführt wird, erfordern einige HA-Szenarien ein Failover, wenn Sie einen oder mehrere Backup-Server für die Hauptserver haben möchten, die eine Website oder eine App bedienen, um eine zuverlässigere HA-Umgebung und eine einfachere Wartung zu gewährleisten.

Abgesehen davon kann HAProxy auch als SSL-Passthrough ausgeführt werden, das verwendet wird, um den gesamten eingehenden Datenverkehr auf Ihrer Infrastruktur zu verschlüsseln, der in diesem Beitrag behandelt wird (mit certbot und let's encrypt ssl). In diesem Beitrag werden die Anweisungen und die HAProxy-Konfiguration behandelt für Szenarien, in denen Sie HAProxy direkt auf einem Server (Bare Metal oder VM) installieren, also nicht in einem Container.

Wenn Sie auch daran interessiert sind, wie Sie SSL zu Ihrem HAProxy hinzufügen können, wird dies in diesem Beitrag behandelt. Wir können auch einen Haproxy-Load-Balancer mit einer SSL/HTTPS-Verschlüsselung konfigurieren und einen sicheren Load-Balancing-Traffic haben.

Round-Robin-Modus

Der Round-Robin-Algorithmus ist der Satz von Anweisungen, um den Datenverkehr gleichmäßig aufzuteilen (in diesem Beispiel), was bedeutet, dass, wenn Sie zwei Server haben, beide Server den Datenverkehr gleichermaßen erhalten, oder mit anderen Worten, Round-Robin stellt sicher, dass beide Server erhalten gleiche Menge an Traffic und stellen so sicher, dass weder Server noch Bandbreite überlastet werden.

Failover-Modus

Wie bereits erwähnt, weisen Sie HAProxy im Failover-Modus zu, welcher Server der primäre Server ist, der den Datenverkehr empfängt, und auch einen Backup-Server, der den empfangenden Datenverkehr übernimmt, wenn der primäre Server ausfällt. Das heißt, wenn der primäre Server ausfällt, übernimmt der Backup-Server und ersetzt den primären Server, bis er wieder online ist, wodurch die Ausfallzeit auf ein Minimum reduziert wird.

Dies ist auch nützlich, wenn eine Serverwartung durchgeführt werden muss. Wenn Sie also Update &Upgrade auf einem Server ausführen oder dieser neu gestartet werden muss, ist der andere Server betriebsbereit und übernimmt die Rolle als primärer Server und wird dies auch weiterhin tun Website/App bereitstellen.

HAProxy-Load-Balancer konfigurieren

Failover-Konfiguration

Die IP-Adressen in der folgenden Konfiguration dienen als Beispiel. Die Konfiguration ist ziemlich einfach. Fügen Sie in der HAProxy-cfg-Datei eine Konfiguration wie diese direkt unterhalb der Standardkonfiguration hinzu:

frontend haproxy
bind 10.0.51.119:80
mode http
default_backend test_site

backend test_site
mode http
server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2
server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

Frontend-Teil der Konfiguration ist der HAProxy. Binden Sie HAProxy mit seiner IP-Adresse und Portnummer (Service-Port). In diesem Beispiel verwenden wir Port 80 für HTTP. Wenn Ihr HAProxy öffentlich im Internet verfügbar ist, verwenden Sie die öffentliche IP-Adresse von HAProxy.

Definieren Sie für das Haproxy-Frontend, dass es ein Backend hat, wo wir Server konfigurieren und hinzufügen.

In diesem Beispiel haben wir zwei Server für das Haproxy-Backend hinzugefügt. Testserver 1 ist der Primärserver und Testserver2 ist der Backup-Server. Wir klären auch die hinzugefügten Parameter auf den Servern:

server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 

server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

Auf beiden Servern haben wir die Server-Online-Check-Intervalle hinzugefügt. Wenn der Testserver1 nach 5 Sekunden mit 3 Prüfungen (3 Prüfungen im 5-Sekunden-Intervall) nicht mehr reagiert, wird er als offline gekennzeichnet und der Sicherungsserver übernimmt. Wenn der Testserver1 wieder online kommt, übernimmt er nach 2 Prüfungen.

Die gleichen Prüfparameter werden für den Backup-Server hinzugefügt.

Round-Robin-Konfiguration

HAProxy hat die Round-Robin-Anweisungen bereits integriert, sodass im gesicherten Teil der Konfiguration nur die Konfigurationszeile hinzugefügt werden muss – balance roundrobin.

Wie in der Konfiguration unten:

frontend haproxy 
bind 10.0.51.119:80 
mode http 
default_backend test_site 

backend test_site 
balance roundrobin
mode http server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 
server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

Failover + Round-Robin

Wir haben erwähnt, dass HAProxy mit Round-Robin-Algorithmus konfiguriert werden kann und auch einen Failover-Server hat. Für dieses Setup wird empfohlen, mehr Server zu haben, die primären Server, auf denen der eingehende Datenverkehr ausgeglichen wird, und einen separaten Failover-Server (Sicherungsserver), der übernommen wird, wenn die primären Server ausfallen. Die Konfiguration für diese Art von Setup würde etwa so aussehen:

backend test_site 
balance roundrobin 
mode http 
server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 
server testserver2 10.0.51.120:80 check inter 5s rise 3 fall 2
server testserver3 10.0.51.121:80 check backup inter 5s rise 3 fall 2

Also haben wir in dieser Konfiguration einen dritten Server hinzugefügt, den wir in HAProxy zugewiesen haben, um als Backup-Server zu fungieren, während die ersten beiden als primäre Server fungieren und HAProxy den Datenverkehr auf sie verteilt.

Zusammenfassung

Dies waren die Beispiele zur Konfiguration des HAProxy-Load-Balancers. Dies waren nur einige Beispiele, wie es am häufigsten konfiguriert wird. Wenn Sie auch daran interessiert sind, wie Sie SSL zu Ihrem HAProxy hinzufügen können, wird dies in diesem Beitrag behandelt. Ich hoffe, der Beitrag ist nützlich für Sie.


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So richten Sie einen Load Balancer auf einem s0.d1.small BMC-Server ein

  3. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Debian 11

  4. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Rocky Linux/Alma Linux 8

  5. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Ubuntu 20.04

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

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

So konfigurieren Sie IIS in Windows Server 2012

So konfigurieren Sie DNS in Windows Server 2012

So konfigurieren Sie NGINX auf einem CentOS 7-Server

So richten Sie HAProxy unter CentOS 8 ein