So richten Sie Haproxy Load Balancer auf Ubuntu 18 ein.04 & 16.04

So richten Sie Haproxy Load Balancer auf Ubuntu 18 ein.04 & 16.04

Haproxy ist eine sehr schnelle und zuverlässige Lösung für hohe Verfügbarkeit, Lastausgleich. Sie unterstützt TCP- und HTTP-basierte Anwendungen. Heutzutage ist die Maximierung von Websites in der Hältigkeit sehr wichtig für starke Verkehrswebsites. Dies ist mit einem einzelnen Server -Setup nicht möglich. Dann benötigen wir eine Umgebung mit hoher Verfügbarkeit.

Dieser Artikel hilft Ihnen dabei, die Umgebung von Haproxy Load Balancing auf Ubuntu, Debian und Linuxmint einzurichten. Dies konfiguriert a Schicht 4 Lastausgleich (Transportschicht). Dadurch werden Last- und Übertragungsanforderungen an verschiedene 2-Server basierend auf IP-Adresse und Portnummern übertragen.

Netzwerkdetails -

Im Folgenden finden Sie unseren Netzwerkserver. Es werden 3 Webserver mit Apache2 ausgeführt und auf Port 80 und einem Haproxy -Server anhören.

Webserverdetails: Server 1: Web1.Beispiel.com 192.168.1.101 Server 2: Web2.Beispiel.com 192.168.1.102 Server 3: Web3.Beispiel.com 192.168.1.103 Haproxy Server:  Haproxy: Haproxy 192.168.1.12 

Schritt 1 - Installieren Sie Haproxy

Beginnen Sie nun das Setup. SSH an Ihren Haproxy -Server als privilegierter Benutzer und installieren Sie Haproxy mit den folgenden Befehlen.

sudo add-apt-Repository PPA: Vbernat/Haproxy-1.8 sudo apt-get update sudo apt-Get Install Haproxy 

Schritt 2 - Konfigurieren Sie den Haproxy -Lastausgleich

Bearbeiten Sie nun die Haproxy -Standardkonfigurationsdatei /etc/hraproxy/hraproxy.CFG und Konfiguration starten.

sudo vi/etc/hraproxy/haproxy.CFG 

Standardeinstellungen:

Sie finden eine Standardkonfiguration wie unten. Wenn Sie nicht genügend eine Vorstellung davon haben, können Sie so behalten, wie es ist.

Global Log/Dev/Log Local0 log/dev/log local1 notieren Sie sich chroot/var/lib/haproxy Statistik Socket/Run/Haproxy/admin.Sockenmodus 660 Level Admin-Statistiken Timeout 30S Benutzer Haproxy Group Haproxy Daemon # Standard SSL-Materialpositionen CA-Base/etc/ssl/certs crt-base/etc/ssl/private # Standard-Ciphers für SSL-fähige Hörstecke zur Verwendung auf SSL-fähigen Hörstücken verwenden. # Weitere Informationen finden Sie unter Ciphers (1SSL). Diese Liste stammt von: # https: // hynek.ME/Artikel/Härten-Sie-Web-Servers-SSL-Ciphers/SSL-Default-Bind-Ciphers ECDH+AESGCM: DH+AESGCM: ECDH+AES256 :: RSA+AES: RSA+3DES:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3-Standardprotokoll-Global-Modus HTTP-Option HTTPLOGOP-Option DontLognull Timeout Connect 5000 Timeout Client 50000 Timeout Server 50000 ERRORFILE 400/ETC/HASPROXY/ERSTELLEN/400.HTTP ERRORFILE 403/ETC/HAPROXY/FEHLER/403.HTTP ERRORFILE 408/ETC/HAPROXY/FEHLER/408.HTTP ERRORFILE 500/ETC/HAPROXY/FEHLER/500.HTTP ERRORFILE 502/ETC/HAPROXY/FEHLER/502.HTTP ERRORFILE 503/ETC/HAPROXY/FEHLER/503.HTTP ERRORFILE 504/ETC/HAPROXY/FEHLER/504.http 

Hinzufügen von Haproxy -Hörer:

Sagen Sie Haproxy nun, wo Sie auf neue Verbindungen zuhören sollen. Gemäß der folgenden Konfiguration wird Haproxy auf Port 80 von 192 aufgeführt.168.1.12 IP -Adresse.

Frontend Local_Server Bind 192.168.1.12:80 Modus http default_backend my_web_servers 

Backend -Webserver hinzufügen:

Laut der oben genannten Konfiguration hört Haproxy jetzt auf Port 80 zu. Definieren Sie nun die Backend -Webserver, auf denen Haproxy die Anfrage senden.

Backend-Knotenmodus HTTP Balance RoundRobin Option Forward For Http-Request Set-Header X-Forwarded-Port %[DST_PORT] HTTP-Request Add-Header X-Forwarded-Proto Https Wenn SSL_FC Option httpchk head / http / 1 1 1.1RNHOST: Localhost Server Web1.Beispiel.com 192.168.1.101: 80 Server Web2.Beispiel.com 192.168.1.102: 80 Server Web3.Beispiel.com 192.168.1.103: 80 

Statistiken aktivieren (optional)

Wenn Sie nun möchten, können Sie HAPROXY -Statistiken aktivieren, indem Sie die folgende Konfiguration in der Haproxy -Konfigurationsdatei hinzufügen.

Hörenstatistiken *: 1936 Statistiken Aktivieren Statistiken Versteckversion Statistiken Aktualisieren Sie 30S-Statistiken 

Schritt 3 - endgültige Haproxy -Konfigurationsdatei

Die endgültige Konfigurationsdatei kann nach unten aussehen:

Global Log/Dev/Log Local0 log/dev/log local1 notieren Sie sich chroot/var/lib/haproxy Statistik Socket/Run/Haproxy/admin.Sockenmodus 660 Level Admin-Statistiken Timeout 30S Benutzer Haproxy Group Haproxy Daemon # Standard SSL-Materialpositionen CA-Base/etc/ssl/certs crt-base/etc/ssl/private # Standard-Ciphers für SSL-fähige Hörstecke zur Verwendung auf SSL-fähigen Hörstücken verwenden. # Weitere Informationen finden Sie unter Ciphers (1SSL). Diese Liste stammt von: # https: // hynek.ME/Artikel/Härten-Sie-Web-Servers-SSL-Ciphers/SSL-Default-Bind-Ciphers ECDH+AESGCM: DH+AESGCM: ECDH+AES256 :: RSA+AES: RSA+3DES:!Anull:!MD5:!DSS SSL-Default-Bind-Options No-SSLV3-Standardprotokoll-Global-Modus HTTP-Option HTTPLOGOP-Option DontLognull Timeout Connect 5000 Timeout Client 50000 Timeout Server 50000 ERRORFILE 400/ETC/HASPROXY/ERSTELLEN/400.HTTP ERRORFILE 403/ETC/HAPROXY/FEHLER/403.HTTP ERRORFILE 408/ETC/HAPROXY/FEHLER/408.HTTP ERRORFILE 500/ETC/HAPROXY/FEHLER/500.HTTP ERRORFILE 502/ETC/HAPROXY/FEHLER/502.HTTP ERRORFILE 503/ETC/HAPROXY/FEHLER/503.HTTP ERRORFILE 504/ETC/HAPROXY/FEHLER/504.HTTP Frontend Local_Server Bind 192.168.1.12:80 Modus http default_backend my_web_servers backend my_web_servers modus http balance RoundRobin Option Forward For Http-Request Set-Header X-forwarded-Port %[dst_port] http-request add-header x-forwarded-proto-https if | Http/1.1RNHOST: Localhost Server Web1.Beispiel.com 192.168.1.101: 80 Server Web2.Beispiel.com 192.168.1.102: 80 Server Web3.Beispiel.com 192.168.1.103: 80 Hörenstatistiken *: 1936 Statistiken Aktivieren Statistiken Versteck Statistiken Aktualisieren 30S-Statistiken STATS-STATS-STATS AUTHEM NUTZERAME: Kennwort Statistiken URI /STATS 

Schritt 4 - Starten Sie Haproxy neu starten

Jetzt haben Sie alle notwendigen Änderungen in Ihrem Haproxy -Server vorgenommen. Überprüfen Sie nun die Konfigurationsdatei, bevor Sie den Dienst mit dem folgenden Befehl neu starten.

Haproxy -c -f/etc/hraproxy/hraproxy.CFG 

Wenn der obige Befehl zurückgegeben hat, ist die Ausgabe als Konfigurationsdatei gültig, dann starten Sie den Haproxy -Dienst neu starten

Sudo Service Hafroxy Neustart 

Schritt 5 - Überprüfen Sie die Haproxy -Einstellung

In diesem Stadium haben wir ein voll funktionsfähiges Haproxy -Setup. Bei jedem Webserverknoten habe ich einen Demo -Index.Die HTML -Seite zeigt Servers -Hostname an, damit wir leicht zwischen den Server -Webseiten unterscheiden können.

Zugang zu Port 80 auf IP 192.168.1.12 (wie oben konfiguriert) im Webbrowser und drücken Sie Aktualisierung. Sie werden sehen, dass Haproxy Anfragen an die Backend-Server nacheinander sendet (gemäß dem Round-Robin-Algorithmus).

Mit jeder Aktualisierung können Sie, dass Haproxy Anfrage einzeln an einen Backend -Server sendet.

Referenz: http: // www.Haproxy.org/download/1.5/doc/Konfiguration.txt