Installieren und konfigurieren Sie HAPROXY unter RHEL 8 / CentOS 8 Linux

Installieren und konfigurieren Sie HAPROXY unter RHEL 8 / CentOS 8 Linux

Haproxy oder hohe Verfügbarkeitsproxy ist eine Open -Source -TCP- und HTTP -Software für Lastausgleiche und Proxy -Server. Haproxy wurde von Willy Tarreau in C geschrieben. Es unterstützt SSL, Kompressionen, Keep-Alive, benutzerdefinierte Protokollformate und Header-Umschreiben. HAPROXY ist ein schneller und leichter Proxy -Server und laden Balancer mit einem kleinen Speicherpfunddruck und einer niedrigen CPU -Verwendung. Es wird von großen Stellen wie Github, Stackoverflow, Reddit, Tumblr, Twitter und anderen verwendet. Es ist in den letzten Jahren zum beliebtesten Software -Last -Balancer und Proxy -Server geworden.

In diesem Tutorial werden Sie die Haproxy -Installation und -konfiguration auf RHEL 8 / CentOS 8 durchlaufen. Wir werden HAPROXY auf einem einzelnen Server installieren und dann den NGINX -Webserver auf den anderen Servern installieren. Hafroxy fungiert als Lastausgleich für die Nginx -Webserver.

In diesem Tutorial lernen Sie:

  • Haproxy -Architektur und Konzepte
  • Konfigurieren Sie die Hosts -Datei für die Namensauflösung
  • Installieren und konfigurieren Sie HAPROXY
  • Installieren und konfigurieren Nginx
  • Testen der Lastausgleichsfunktion
  • Zugriff auf die Haproxy -Statistik -URL

Haproxy -Architektur.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Rhel 8 / Centos 8
Software Haproxy, Nginx
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Haproxy -Architektur und Konzepte

HAPROXY kann in zwei Modi ausgeführt werden: TCP -Modusschicht 4 und HTTP -Modusschicht 7. Im TCP -Modus in Layer 4 leitet sich Haproxy die RAW -TCP -Pakete vom Client an die Anwendungsserver weiter. Im Layer 7 HTTP -Modus analysiert Htproxy den HTTP -Header, bevor sie an die Anwendungsserver weitergeleitet werden. In diesem Tutorial verwenden wir Nginx als Webserver, der den Layer 7 HTTP -Modus unterstützt.

Schicht 4 Lastausgleich. Schicht 7 Lastausgleich.



Balance -Algorithmus ist der Algorithmus, der von Hafroxy verwendet wird, um den Server beim Lastausgleich auszuwählen. Die folgenden Modi sind verfügbar:

Roundrobin

Dies ist der einfachste Balancealgorithmus. Für jede neue Verbindung wird sie vom nächsten Backend -Server behandelt. Wenn der letzte Backend -Server in der Liste erreicht ist.

Kleinste

Die neue Verbindung wird vom Backend -Server mit geringsten Verbindungen behandelt. Dies ist nützlich, wenn Zeit und Ladung der Anfragen stark variieren.

Quelle

Dies gilt für Sticky -Sitzungen. Die Client -IP wird gehasht, um den Backend -Server zu bestimmen, der die letzte Anfrage von dieser IP erhalten hat. Ein IP A wird also immer von Backend1 behandelt, und IP B wird immer von Banckend2 behandelt, um keine Interrupt -Sitzungen zu unterbrechen.

Konfigurieren Sie die Hosts -Datei für die Namensauflösung

Melden Sie sich beim Load Balancer Server an und bearbeiten Sie die /etc/hosts Datei- und Haproxy LoadBalancer, Nginx1, Nginx2 Hostnamen. Kopieren Sie dieselbe Datei auf beiden anderen Nginx -Knoten und überprüfen Sie die Netzwerkkonnektivität über Ping Comand.

# vim /etc /hosts
 192.168.1.108 LoadBalancer.Beispiel.com 192.168.1.104 nginx1.Beispiel.com 192.168.1.105 nginx2.Beispiel.com 
Kopieren

Installieren und konfigurieren Sie HAPROXY

Haproxy ist im RHEL 8 / CentOS 8 -Repository erhältlich. Melden Sie sich daher beim LoadBalancer -Server an und installieren Sie Paket Haproxy mit diesem Befehl yum.

# yum install hastroxy

Nach erfolgreicher Installation können Sie den folgenden Befehl verwenden, um die Installation zu überprüfen.

# Yum Info Haproxy
# Yum Info Haproxy Aktualisierung von Abonnementverwaltungsrepositories. Aktualisieren von Abonnementverwaltungsrepositories. Letzte Metadaten -Ablauf -Überprüfung: 0:06:03 vor Sa 16. März 2019 11:40:24 PM +04. Installierte Pakete Name: Haproxy Version: 1.8.14 Release: 1.EL8 ARCH: x86_64 Größe: 4.1 m Quelle: Haproxy-1.8.14-1.EL8.src.RPM Repo: @System von Repo: RHEL-8-für-X86_64-Appstream-Beta-RPMS Zusammenfassung: Haproxy Reverse Proxy für Umgebungen mit hoher Verfügbarkeitsumgebungen URL: http: // www.Haproxy.Org/ Lizenz: GPLV2+ Beschreibung: HaProxy ist ein TCP/ HTTP -Reverse -Proxy, der besonders für hohe: Verfügbarkeitsumgebungen geeignet ist. In der Tat kann es :: - Routen Sie HTTP -Anforderungen ab, abhängig von statisch zugewiesenen Cookies: - Last unter mehreren Servern verteilt und gleichzeitig die Persistenz des Servers versichert: Durch die Verwendung von HTTP -Cookies: - Wechseln zu speziellen Ports, die der Serviceüberwachung gewidmet sind: - Hören Sie auf, Verbindungen zu akzeptieren, ohne vorhandene zu brechen: - HTTP -Header in beide Richtungen hinzufügen, ändern und löschen die Anwendung 

Wenn die Installation beendet ist, gehen Sie zum Abschluss der /etc/hraproxy/ Verzeichnis und Sicherung der ursprünglichen Konfigurationsdatei.



# CD/etc/haproxy/ # CP Haproxy.CFG Haproxy.CFG.orig 

Führen Sie als nächstes die folgenden Änderungen in der Haproxy -Konfigurationsdatei durch Haproxy.CFG mit einem der Herausgeber.

#------------------------------------------------- -------------------- # Beispielkonfiguration für eine mögliche Webanwendung. Siehe die # vollständigen Konfigurationsoptionen online. # # https: // www.Haproxy.org/download/1.8/doc/Konfiguration.txt # #----------------------------------------------- ---------------------- #----------------------- ------------------------------------------ # Globale Einstellungen #---- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------- Global #, damit diese Nachrichten in/var/log/haproxy landen.Log. Dies geschieht # durch Hinzufügen der Option '-r' zu den syslogd_options in #/etc/sysconfig/syslog # # 2) Konfigurieren Sie lokale Ereignisse, um zum/var/log/haproxy zu gehen.Logdatei. Eine Zeile wie die folgende kann zu #/etc/sysconfig/syslog # # local2 hinzugefügt werden.*/var/log/hraproxy.Protokoll # Protokoll 127.0.0.1 Local2 Chroot/var/lib/hraproxy pidfile/var/run/hraproxy.PID MaxConn 4000 Benutzer Haproxy Group Haproxy Dämon # Schalten Sie Statistiken Unix Socket Statistics Socket/var/lib/haproxy/statistics # verwenden systemweite Crypto-Policies SSL-Default-Bind-Cipheers Profil = System SSL-Default-Server-Ciphers Profile verwenden = System #------------------------------------------- ---------------------- # Häufige Standardeinstellungen, die alle Abschnitte "Hören" und "Backend" verwenden, wenn nicht in ihrem Block # benannt wird ---- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------.0.0.0/8 Option Redispatch-Wiederholung 3 Timeout Http-Request 10S Timeout Queue 1m Timeout Connect 10S Timeout Client 1m Timeout Server 1m Timeout http- Keep-Alive 10S Timeout Check 10S MaxConn 3000 #------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------ # Haproxy Überwachungskonfiguration # ----------------------------------- ------------------------------ Hörenstatistiken Bind Lastbalancer.Beispiel.Com: 8080 # Haproxy-Überwachung im Port 8080 Modus HTTP-Option Forward For Option HTTPCLOSE STATS ENABLE STATS STATS-LEGEND STATS STATEN 5S STATS URI /STATS # URL FÜR HAPROXY-Überwachung Statistiken Realm Haproxy \ Statistics Statistik-Statistiken AuthaMing: Admin: Admin # Benutzer und Passwort für Login zum Überwachungs-Dashboard #Stats Admin Wenn true default_backend loadBalancer #Dies ist optional zur Überwachung des Backends #--------------------------- ---------------------------------- # Hauptfront, das zu den Backends # --- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------- Frontend Lastballer Bindbalancer.Beispiel.com: 80 #ACl URL_STATISCH PATH_BEG -I /STATIC /Images /JavaScript /Stylesheets #ACl url_static path_end -i .JPG .GIF .png .CSS .js #use_backend static wenn url_statische Option http-server-close-Option Forward For Default_backend LoadBalancer #--------------------------------- ------------------------------------ # statisches Backend zum Servieren von Bildern, Stylesheets und so #-- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------- #backend static # balances RoundRobin # Server static 127.0.0.1: 4331 Überprüfen Sie #--------------------------------------------- ------------------------ # Round Robin Balancing zwischen den verschiedenen Backends # ----------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - Backend LoadBalancer Balance RoundRobin # Balance Algorithmus Option httpchk Head / Http / 1.1 \ r \ nHost: \ localhost # Überprüfen Sie, ob die Serveranwendung hoch ist und Healty - 200 Statuscode Server Nginx1.Beispiel.com 192.168.1.104: 80 # nginx server1 server nginx2 überprüfen.Beispiel.com 192.168.1.105: 80 # ngnix server2 überprüfen 

Speichern Sie diese Konfigurationsdatei und beenden Sie.

Jetzt konfigurieren wir den Rsyslog -Daemon, um die Haproxy -Statistik zu protokollieren. Bearbeiten die rsyslog.Conf Datei, mit der der UDP -Port 514 von Rsyslog verwendet werden kann. Öffnen Sie die RSYSLog -Konfigurationsdatei und kontrollieren Sie die Zeilen, um die UDP -Verbindung zu aktivieren.

# vim /etc /rsyslog.Conf
Modul (Load = "IMUDP") # muss nur einmal eingegeben werden (Typ = "IMUDP" port = "514") 

Speichern Sie die Datei mit oben genannten Änderungen und beenden Sie. Erstellen Sie dann eine neue Haproxy -Konfigurationsdatei für RSYSLog und fügen Sie die folgenden Einträge in dieser Datei hinzu.

# CD /etc /rsyslog.D/ # VI Haproxy.Conf 
Lokal2.= info/var/log/hraproxy-access.Protokoll # für Access LOCE LOCAL22.Hinweis/var/log/haproxy-info.Log # für Service Info - Backend, LoadBalancer 

Starten Sie nun Rsyslog neu und beginnen.

# SystemCTL Neustart Rsyslog # systemctl start haproxy # systemctl aktivieren haproxy 

Installieren und konfigurieren Nginx

Nginx ist bereits Teil des vorhandenen RHEL 8 / CentOS 8 Repo und kann mit dem folgenden Befehl installiert werden.

# yum install nginx installieren

Nach der Installation können Sie die Installation mit Hilfe dieses Befehls überprüfen.

# yum Info Nginx


# yum Info Nginx Aktualisierung von Abonnementverwaltungsrepositories. Aktualisieren von Abonnementverwaltungsrepositories. Letzte Metadaten -Ablauf -Überprüfung: 0:06:14 vor Samstag 16. März 2019 23:40:24 Uhr +04. Installierte Pakete Name: Nginx Epoch: 1 Version: 1.14.0 Release: 3.EL8+1631+BA902CF0 ARCH: x86_64 Größe: 568 K Quelle: Nginx-1.14.0-3.EL8+1631+BA902CF0.src.RPM Repo: RHEL-8-für-X86_64-Appstream-Beta-RPMS Zusammenfassung: Ein Hochleistungs-Webserver und Reverse-Proxy-Server URL: http: // nginx.Org/ Lizenz: BSD Beschreibung: Nginx ist ein Webserver und ein Reverse -Proxy -Server für HTTP, SMTP, POP3 und: IMAP -Protokolle mit einem star. 

Sobald Nginx installiert ist, gehen Sie zum Webverzeichnis und ändern Sie die Index.html Datei entsprechend. Stellen Sie sicher.

# cd/usr/shary/nginx/html # ls -lrth insgesamt 20k -rw-r-r--. 1 Wurzelwurzel 2.8k 31. Oktober 2016 Poweredby.png -rw-r-r--. 1 Root Root 368 31. Oktober 2016 Nginx-Logo.png -rw-r-r--. 1 Wurzelwurzel 3.7k 16. März 20:39 50x.html -rw-r-r--. 1 Wurzelwurzel 3.6k 16. März 20:39 404.html -rw-r-r--. 1 Wurzelwurzel 3.7k 16. März 20:42 Index.html 

Fügen Sie als Nächst.

# SystemCTL aktivieren nginx # systemctl start nginx 

Testen der Lastausgleichsfunktion

Tests können durch Browing und Zugriff auf den LoadBalancer IP 192 durchgeführt werden.168.1.108 (für meinen Fall) und Sie werden einmal sehen.

Webseite auf Nginx Node1. Webseite auf Nginx Node2.

Sie können auch die überprüfen /var/log/hraproxy-access.Protokoll Um die Detailinformationen zum Lastausgleich zu erhalten.

Zugriff auf die Haproxy -Statistik -URL

Greifen Sie auf das Dashboard für den statistischen Bericht des HAPROXY -Berichts zu, der auf Port 8080 mit definierter Benutzername und Passwort ausgeführt wird Haproxy.CFG Datei.



http: // 192.168.1.108: 8080/Statistiken
Zugang zu Haproxy -Statistiken URL. Haproxy -Statistik Dashboard.

Haproxy arbeitet erfolgreich und fungiert als Lastausgleich für die beiden Nginx -Webserver.

Abschluss

Haproxy oder Proxy mit hoher Verfügbarkeit ist eine Open-Source-Software, die eine hohe Verfügbarkeit von TCP-basierten Diensten bietet. Sie wird als HTTP-Last-Balancer und Proxy-Server dient. Die Software ist in C geschrieben und unterstützt SSL, Keep-Alive und Komprimierung. Haproxy ist die richtige Wahl für alle, die einen Lastausgleich und einen Proxy -Server benötigen. HAPROXY kann im TCP -Modus Layer 4 und Layer 7 HTTP -Modus ausgeführt werden. Nginx unterstützt nur den HTTP -Modus von Layer 7 mit Haproxy. Wenn Sie den Layer 4 TCP -Modus verwenden möchten, können Sie andere Webserver wie Apache verwenden. Auf RHEL 8 / CentOS 8 Linux ist Haproxy im Standard -Repository verfügbar. Es ist einfach zu installieren und zu konfigurieren.

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Mastering -Bash -Skriptschleifen beherrschen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Vergleich von Linux Apache Pre -Onk -vs -Worker -MPMs
  • Ubuntu 20.04 WordPress mit Apache -Installation
  • Ubuntu 20.04: WordPress mit Nginx -Installation
  • Linux -Download
  • Erstellen Sie Umleitungs- und Umschreiben von Regeln in .Htaccess auf Apache…
  • Wie oft müssen Sie Ihren Linux -Server neu starten??