Installieren und konfigurieren Sie HAPROXY unter RHEL 8 / CentOS 8 Linux
- 1361
- 166
- Tom Jakobs
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
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/StatistikenZugang 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??
- « So installieren Sie Perl auf RHEL 8 / CentOS 8 Linux
- So installieren und erstellen Sie einen Beispieldienst mit Xinetd unter RHEL 8 / CentOS 8 Linux »