HAProxy ist eine kostenlose Open-Source-Lösung für Hochverfügbarkeit und Lastausgleich, sie kann auch für das Proxying von TCP- und HTTP-basierten Anwendungen verwendet werden. HAProxy kann auf Linux, Solaris &FreeBSD installiert und konfiguriert werden. HAProxy ist die am besten empfohlene Lösung für Websites mit großem Datenverkehr, da es die Leistung und Zuverlässigkeit des Servers durch Lastausgleich der Server und die Nutzung seiner Hochverfügbarkeitsfähigkeiten verbessert
HAProxy wird von einer Reihe der beliebtesten Websites verwendet, darunter GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter, und es wird auch im OpsWorks-Produkt von Amazon Web Services verwendet. In diesem Tutorial lernen wir, wie man Haproxy installiert und verwendet Debian 9 &auch für Ubuntu 16.04 Server. Wir beginnen zunächst mit der Installation von Haproxy auf Debian 9,
Installation von HAProxy auf Debian 9
Derzeit ist die neueste stabile Version von Haproxy, die von Debian 9 unterstützt wird, 1.8, wir werden nur diese installieren. Zuerst müssen wir das Backports-Repository auf Debian 9 aktivieren, verwenden Sie dazu den folgenden Befehl,
[[email protected] ~]# echo deb http://httpredir.debian.org/debian stretch-backports main | tee /etc/apt/sources.list.d/backports.list
Sobald dies erledigt ist, aktivieren wir ein dediziertes Repository mit dem folgenden Befehl,
[[email protected] ~]# curl https://haproxy.debian.net/bernat.debian.org.gpg | apt-key add -[[email protected] ~]# echo deb http://haproxy.debian.net stretch-backports-1.8 main | tee /etc/apt/sources.list.d/haproxy.list
Jetzt können wir Haproxy mit den oben hinzugefügten Repositories installieren,
[[email protected] ~]# apt-get update[[email protected] ~]# apt-get install haproxy -t stretch-backports\*
Dadurch wird der Haproxy auf dem Debian 9-System installiert, wir werden nun die Installation auf Ubuntu 16.04-Systemen besprechen.
Installation von HAProxy auf Ubuntu 16.04
HAProxy 1.8 ist auch die neueste Version für Ubuntu 16.04. Ubuntu hat dedizierte PPA zur Installation verfügbar, installieren Sie sie mit den folgenden Befehlen,
[[email protected] ~]$ sudo apt-get install software-properties-common[[email protected] ~]$ sudo add-apt-repository ppa:vbernat/haproxy-1.8
Nachdem die Repositorys hinzugefügt wurden, installieren Sie haproxy 1.8 mit dem folgenden Befehl:
[[email protected] ~]$ sudo apt-get update[[email protected] ~]$ sudo apt-get install haproxy
Jetzt haben wir Haproxy bereit. Für dieses Tutorial werden wir HAProxy konfigurieren, um die Anforderungen von einem Mailserver und einem Webserver auszugleichen.
Load Balancing eines Mailservers mit HAProxy
Für dieses Beispiel verwenden wir zwei SMTP-Server mit den IP-Adressen 192.168.1.10 bzw. 192.168.1.20.
Die IP-Adresse für den Haproxy-Server lautet 192.168.1.100.
Wir werden nun die Änderungen an der Hauptkonfigurationsdatei von HAProxy vornehmen, d. h. „/etc/haproxy/haproxy.cfg ‘ und nehmen Sie dann die Konfigurationsänderungen für den Lastenausgleich der beiden SMTP-Server vor,
[[E -Mail geschützt] ~] $ sudo vi /etc/haproxy/haproxy.cfgglobal log/dev/local local0 log/dev/log local1 notal chroot/var/lib/haproxy user HAPROXY Group HAPROXY MaxConn 1024 DaemonDefaults Log Global Global Global Global Modus TCP -Option TCPlog Option dontLognullFrontend front_smtp bindHier wurden die meisten Optionen standardmäßig eingestellt, die wichtigsten Dinge, die hier geändert werden müssen, sind ‘Frontend ‘ &‘Backend ‘Abschnitte.
frontend front_smtp
binden *:25
Modus TCP
default_backend back_smtp
Hier haben wir einen Namen für das Frontend definiert, z. B. front_smtp, und haben darum gebeten, alle Anfragen von Port 25 mit dem Bind-Parameter entgegenzunehmen. Zuletzt haben wir den Backend-Abschnitt mit dem Namen „back_smtp“ erwähnt, wo alle Anfragen verteilt werden.
backend back_smtp
Modus TCP
Balance-Roundrobin
server smtp1 192.168.1.10:25 prüfen
server smtp2 192.168.1.20:25 prüfen
In diesem Abschnitt haben wir einen Namen für das Backend festgelegt, z. B. back_smtp, und der Modus für die Übertragung wird TCP sein. Die zu verwendende Lastausgleichsmethode ist „Roundrobin ‘. Andere Load-Balancing-Methoden, die verwendet werden können, sind Weighted Round Robin , Dynamischer Round-Robin-Algorithmus ,Least Connection Algorithmus , Quelle. Zuletzt haben wir die Serveradressen für beide SMTP-Server erwähnt.
Sobald die Änderungen vorgenommen wurden, speichern Sie die Datei und starten Sie den Haproxy-Dienst neu, um die Änderungen zu implementieren,
[[email protected] ~]$ sudo service haproxy restartUnser Haproxy-Server ist jetzt bereit, als Load Balancer für den Mailserver zu arbeiten. Anstatt die SMTP-Serveradressen zu verwenden, müssen wir jetzt die Serveradresse für HAPROXY verwenden, d. h. 192.168.1.100:25, damit Haproxy-Lastausgleich funktioniert.
Um zu überprüfen, ob der Lastausgleich für unseren SMTP-Server funktioniert, können wir Telnet verwenden,
Die Ausgabe des Telnet-Befehls sollte in etwa so aussehen:
[[email protected] ~]$ telnet 192.168.1.100 25Versuche 192.168.1.100..Verbunden mit 192.168.1.100.Escape-Zeichen ist „^]“.220 smtp1.linuxtechi.com ESMTP PostfixFühren Sie nun erneut den Telnet-Befehl aus,
[[email protected] ~]$ telnet 192.168.1.100 25Versuche 192.168.1.100..Verbunden mit 192.168.1.100.Escape-Zeichen ist „^]“.220 smtp2.linuxtechi.com ESMTP PostfixBeachten Sie die Änderung des Servers der Mailserver in beiden Ausgaben, was zeigt, dass der Lastausgleich gut funktioniert. Lassen Sie uns nun ein Harpoxy-Beispiel für den Lastenausgleich eines Webservers besprechen.
Load-Balancing eines Webservers mit HAProxy
Dieselbe Datei wird „/etc/haproxy/haproxy.cfg“ bearbeitet. Wir werden zwei Webserver (192.168.1.10 &192.168.1.20) im Backend verwenden. Die IP-Adresse für den Haproxy-Server lautet 192.168.1.100.
Öffnen Sie die Haproxy-Hauptkonfigurationsdatei und nehmen Sie die folgenden Änderungen vor,
[[E -Mail geschützt] ~] $ sudo vi /etc/haproxy/haproxy.cfgglobal log/dev/local local0 log/dev/log local1 notal chroot/var/lib/haproxy user HAPROXY Group HAPROXY MaxConn 1024 DaemonDefaults Log Global Global Global Global mode http option httplog option dontlognullfrontend www-http bind *:80 mode http default_backend apachebackend apache mode http balance roundrobin server web1 192.168.1.10 server web2 192.168.1.20Speichern Sie die Datei und starten Sie den Haproxy-Dienst neu, um die Änderungen zu implementieren,
[[email protected] ~]$ sudo service haproxy restartUm zu testen, ob das Load-Balancing funktioniert, können wir zwei verschiedene Webseiten auf beiden Servern platzieren. So können wir zum Beispiel index.html auf Webserver 1 modifizieren,
[[email protected] ~]$ sudo vi /var/www/html/index.htmlDas ist WEB SERVER 1&ähnlich können wir auf Webserver 2 die index.html bearbeiten, um zu sagen,
[[email protected] ~]$ sudo vi /var/www/html/index.htmlDas ist WEB SERVER 2Vergessen Sie nicht, den Webdienst neu zu starten, um die vorgenommenen Änderungen zu implementieren.
Verwenden Sie jetzt die Haproxy-IP-Adresse 192.168.1.100 und greifen Sie mit einem Webbrowser darauf zu.
Jedes Mal, wenn wir den Browser aktualisieren, sollten wir abwechselnd Webseiten von beiden Webservern anzeigen.
Dies zeigt, dass unser Webserver-Load-Balancing ebenfalls einwandfrei funktioniert. Damit beenden wir unser Tutorial zur Installation und Verwendung von HAProxy unter Debian 9 und Ubuntu 16.04. Bitte zögern Sie nicht, Ihre Fragen oder Vorschläge über das Kommentarfeld unten zu senden