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

Richten Sie Load Balancing mit HAProxy, Nginx und Keepalived unter Linux ein

Bei der herkömmlichen Methode zum Hosten eines Servers oder einer Website wird der Server über einen einzigen HTTP-Server gehostet. Wenn die Clients den Server erreichen, werden sie auf dem Server zugelassen. Aber was passiert, wenn mehrere Benutzer, noch mehr; Tausende von Kunden besuchen die Website gleichzeitig für eine Anfrage? Was passiert, wenn der Server abstürzt? Wie gleicht der einzelne Server die Last aus? Um all diese Fragen zu beantworten, können wir den Begriff „Load Balancing“ verwenden. Wenn Sie nach authentischen Tools zum Verwalten des Datenverkehrs Ihres Servers suchen, können Sie auf jeden Fall HAProxy, Nginx und Keepalived unter Linux für den Lastausgleich einrichten.

Grundlagen von HAProxy, Nginx und Keepalived

Nginx ist bekannt für seine Load-Balancing- und Proxy-Dienste. Bei Load-Balancer-Servern verbinden sich die Clients über einen Load-Balancer mit dem Server, anstatt sich direkt mit dem Server zu verbinden. Die Verwendung von Nginx, HAProxy und Keepalived funktioniert gut für den Lastausgleich unter Linux. Wenn ein Server abstürzt, verbindet der Load Balancer die Clients mit einem anderen Server, der online ist.

HAProxy ist ein kostenloses Open-Source-Load-Balancing-Tool für HTTP- und TCP-Webserver. Es ist in der Programmiersprache C geschrieben und unter der GNU Public License lizenziert. Es ist in hohem Maße ergänzbar und für den Lastausgleich unter Linux einfach einzurichten. Der Begriff HAProxy steht für High Availability Proxy Tool. Sie können das HAProxy-Tool bereitstellen, um die Serverleistung, Verfügbarkeit und den Lastenausgleich zu verbessern.

Das Keepalived-Tool fungiert als Mittelsmann zwischen zwei Servern, der den Client von einem Server auf einen anderen Server umleiten kann, wenn einer von ihnen ausfällt. Keepalived arbeitet in einem virtuellen Router-Redundanzprotokoll zum Lastenausgleich und zur Verringerung des Serverausfallproblems. Die Verwendung von HAProxy ist gut für den Lastenausgleich und dafür, dass der Server immer einsatzbereit ist.

Daher gibt es keine Garantie dafür, dass der HAProxy immer am Leben bleibt. Hier kommt das Keepalived zum Sichern Ihres HAProxy. Es kann die Anfrage des Clients an entfernte Server verteilen und den Lastausgleich auf Ebene 4 und Ebene 7 (Transport- und Anwendungsebene) übernehmen. Darüber hinaus kann der HAProxy mit Zugriffskontrolllisten, Backend- und Frontend-Terminologien umgehen.

Load-Balancing mit HAProxy, Nginx und Keepalived unter Linux

Da wir bereits viel über HAproxy, Nginx und das Keepalived-Tool für Linux gesprochen haben, springen wir also zum Tutorial. In diesem Beitrag werden wir sehen, wie man den Lastausgleich mit HAProxy, Nginx und Keepalived unter Linux einrichtet. Für diesen Beitrag benötigen wir grundlegende Kenntnisse auf Serverebene und die grundlegende Fähigkeit, Linux zu verwenden.

Schritt 1:Installieren Sie Nginx unter Linux für den Lastenausgleich

Da wir die Methoden sehen werden, unseren Server leistungsfähiger zu machen, Lastenausgleich und mehr Client-Handling, wäre die Installation des Nginx-HTTP-Webservers der erste Schritt, um den Prozess zu beginnen. Die Installation des Nginx-Webservers ist einfach und unkompliziert, und Sie können die folgenden Befehle verwenden, um den Nginx-Webserver auf Ihrem Linux-Computer zu installieren.

  • Installieren Sie den Nginx-Webserver auf Ubuntu/Debian Linux
sudo apt update
sudo apt install nginx
- -

  • Führen Sie die folgenden Befehle aus, um Nginx auf Fedora/Red Hat Linux zu installieren
yum -y install nginx

Nach der Installation des Nginx-Servers werden wir den Server auf Ihrem Computer konfigurieren, aktivieren und starten. Bitte gehen Sie diesen Beitrag durch, um zu erfahren, wie Sie mit dem Nginx-Server unter Linux beginnen können.

Schritt 2:Installieren Sie den HAproxy Load Balancer unter Linux

Nach der Installation und Konfiguration des Nginx-Servers auf Ihrem Linux-Computer funktioniert er möglicherweise problemlos als Server auf Ihrem Computer oder Netzwerk. Aber da wir hier versuchen, einen Load-Balancing-Server zu erstellen, werden wir jetzt das HAproxy-Tool auf unserem System installieren und konfigurieren.

1. Installieren und konfigurieren Sie HAproxy unter Ubuntu für Load Balancing

Bevor Sie den HAProxy auf Ihrem System installieren, sollten Sie überprüfen, ob die HAProxy-Dienste bereits in Ihrem System vorhanden sind oder nicht.

sudo apt show haproxy

Fügen Sie nun das HAProxy-Repository über die PPA-Pakete zu Ihrem System hinzu. Sobald der PPA das Repository hochzieht, aktualisieren Sie Ihr System-Repository.

sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update

Abschließend führen Sie bitte die folgenden Befehle auf Ihrem Ubuntu/Debian-Linux-System aus, um den HAProxy auf dem System zu erhalten. Überprüfen Sie nach der Installation von HAProxy bitte die HAProxy-Version, um sicherzustellen, dass sie korrekt auf Ihrem Computer installiert wurde.

sudo apt install -y haproxy
haproxy -v

Sobald die Installation des HAProxy auf Ihrem Linux-Rechner abgeschlossen ist, bearbeiten wir nun das Konfigurationsskript zum Einrichten des HAProxy mit unserem Server. Hier werden wir einige HAProxy-Konfigurationsskripte bearbeiten, und seien Sie bitte vorsichtig, während Sie diese Skripte bearbeiten und eine Sicherungskopie dieser Dateien erstellen, um die Standardkonfiguration wiederherzustellen, falls etwas schief geht.

Führen Sie zunächst den folgenden Befehl auf Ihrer Terminal-Shell mit Root-Zugriff aus, um das HAProxy-Konfigurationsskript zu bearbeiten. Hier verwende ich das Nano-Skripteditor-Tool, und Sie können jedes Ihrer bevorzugten Tools verwenden.

sudo nano /etc/haproxy/haproxy.cfg

Kopieren Sie nun die folgenden Skriptzeilen und fügen Sie sie in die Datei ein. Speichern und schließen Sie die Datei. Die folgenden Skriptzeilen definieren den Frontend- und den Backend-Status mit HAProxy. Bitte geben Sie Ihre Serverdaten in die Felder Servername, IP und andere Anmeldeinformationen ein.

frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

Führen Sie nun den folgenden Befehl auf der Terminal-Shell aus, um das HAproxy-Skript zu bearbeiten und zu konfigurieren.

sudo nano /etc/haproxy/haproxy.cfg

Bitte verwenden Sie das folgende Konfigurationsskript, um die HAproxy-Einstellungen einzurichten.

frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

backend blog_back
server :80 check

Wenn die Konfiguration abgeschlossen ist, können Sie jetzt das HAProxy-Tool auf Ihrem Linux-Rechner neu starten, indem Sie den folgenden Systemsteuerungsbefehl mit Root-Zugriff ausführen.

sudo systemctl status haproxy
sudo systemctl restart haproxy

Sie können jetzt den unten genannten Befehl mit der Adresse Ihres Servers ausführen, um den Status des Servers zu überprüfen.

http:///haproxy?stats

2. Installieren und konfigurieren Sie HAproxy auf Fedora

Die Installation des HAProxy-Load-Balancing-Tools unter Fedora Linux ist ähnlich wie die Installation auf Debian/Ubuntu-Systemen. Aktualisieren Sie zuerst das System-Repository und führen Sie dann den DNF-Befehl aus, um das HAProxy-Tool auf Ihrem Linux-Computer zu installieren.

yum -y update
yum -y install haproxy

Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um eine Sicherungskopie des Konfigurationsskripts zu erstellen, bevor Sie Änderungen vornehmen.

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg_bac

Sie können jetzt ein neues HAProxy-Konfigurationsskript erstellen, indem Sie den folgenden Touch-Befehl ausführen, der unten angegeben ist. Bearbeiten Sie dann das Skript mit dem folgenden Nano-Befehl.

touch haproxy.cfg
nano haproxy.cfg

Sie können das folgende Konfigurationsskript kopieren und einfügen, dann speichern und die Datei beenden.

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

#frontend
#---------------------------------
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

#round robin balancing backend http
#-----------------------------------
backend http_back
balance roundrobin
#balance leastconn
mode http
server webserver1 10.13.211.169:80 check # ip_address_of_1st_centos_webserver
server webserver2 10.13.211.158:80 check # ip_address_of_2nd_centos_webserver

Nachdem wir das Skript zur Konfigurationsdatei hinzugefügt haben, aktivieren, starten und überprüfen wir den Status des HAProxy-Tools auf unserem Fedora-Linux.

systemctl enable haproxy
systemctl start haproxy
systemctl status haproxy

Sie können auch überprüfen, ob der HAProxy auf Ihrem System gut funktioniert oder nicht, indem Sie den HAProxy-Status über Ihren Webbrowser abrufen.

http://10.13.211.194/haproxy?stats

Die folgenden cURL-Befehle geben auch den detaillierten Serverstatus zusammen mit dem HAProxy-Status zurück.

curl 10.13.211.194
curl 10.13.211.194

Schritt 3:Keepalived unter Linux installieren

Da wir Keepalived bereits besprochen haben, gehen wir hier direkt durch den Installationsprozess von Keepalived auf Linux-Systemen. Hier sehen wir Methoden zur Installation und Konfiguration des Keepalived-Tools unter Fedora und Debian Linux.

1. Installieren und konfigurieren Sie Keepalived unter Ubuntu/Debian

Um das Keepalived-Load-Balancing-Tool auf Ubuntu- und anderen Debian-Linux-Systemen zu installieren, führen Sie bitte den folgenden Befehl aus, um die Build-Essential-Tools auf Ihren Systemen zu erhalten. Durchsuchen Sie dann das Home-Verzeichnis und führen Sie den unten angegebenen wget-Befehl aus, um die komprimierte Keepalived-Datei auf das Dateisystem herunterzuladen.

sudo apt-get install build-essential libssl-dev
cd ~
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

Wenn der Download abgeschlossen ist, verwenden Sie bitte den folgenden tar-Befehl, um die Datei zu extrahieren, und durchsuchen Sie dann das extrahierte Verzeichnis mit dem CD-Befehl.

tar xzvf keepalived*
cd keepalived*

Sie können jetzt die folgenden Befehle ausführen, um das Keepalived-Tool auf Ihrem Ubuntu-System zu installieren.

./configure
make
sudo make install

Wenn die Installation beendet ist, ist es an der Zeit, die Konfiguration für die Einrichtung von Keepalived mit unserem Server zu bearbeiten. Bitte führen Sie den folgenden Befehl aus, um das Konfigurationsskript zu bearbeiten.

sudo nano /etc/init/keepalived.conf

Wenn das Skript geöffnet wird, kopieren Sie das folgende Skript und fügen Sie es ein.

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

Führen Sie nun mkdir aus Befehl, um ein neues Konfigurationsskript für das Keepalived-Tool zu erstellen, und füllen Sie es dann mit dem Konfigurationsskript.

sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf

Verwenden Sie die folgenden Skriptzeilen, um die Keepalived-Konfigurationsdatei zu füllen.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
secondary_private_IP
}


}

Bearbeiten Sie nun das Keepalived-Konfigurationsskript aus der Datei etc Verzeichnis und fügen Sie die folgenden Zeilen in Ihr Skript ein.

sudo nano /etc/keepalived/keepalived.conf

Skriptzeilen, die wir in die Konfigurationsdatei einfügen müssen.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

Nachdem wir die Skripte für Keepalived konfiguriert haben, erstellen wir nun ein sekundäres Load Balancer-Konfigurationsskript und füllen das Skript mit den erforderlichen Skriptzeilen.

sudo nano /etc/keepalived/keepalived.conf

Führen Sie den nano-Befehl aus, um das Skript zu bearbeiten, und füllen Sie das Skript mit den unten angegebenen Zeilen. Sobald die Datei aktualisiert ist, speichern und schließen Sie das Skript.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

2. Keepalived auf Fedora installieren und konfigurieren

Die Installation des Keepalived-Tools auf Fedora- und Red Hat Linux-Systemen ist der Installation auf Debian-Distributionen ziemlich ähnlich. Zuerst müssen Sie Ihr System-Repository aktualisieren und dann den folgenden yum-Befehl ausführen, um das Keepalived-Tool zu installieren.

yum update
yum install -y keepalived

Wenn die Installation abgeschlossen ist, werden wir nun das Keepalived-Konfigurationsskript bearbeiten, um die Servereinstellungen mit Keepalived anzupassen. Bevor wir Änderungen vornehmen, erstellen wir eine Sicherungskopie des Keepalived-Konfigurationsskripts.

Führen Sie die folgenden Befehle nacheinander auf Ihrer Shell aus, um eine Sicherungsdatei zu erstellen, eine Konfigurationsdatei zu erstellen und das Konfigurationsskript zu bearbeiten. Nachdem wir das Tool konfiguriert haben, werden wir es verwenden, um unseren Load-Balancing-Server unter Linux einzurichten.

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

Wenn sich das Konfigurationsskript öffnet, füllen Sie bitte die Datei mit den unten angegebenen Skriptzeilen. Möglicherweise müssen Sie Änderungen an der Skriptdatei entsprechend der IP, dem Port, dem Namen und anderen Details Ihres Servers vornehmen.

global_defs {
notification_email {
www.ubuntupit.com
[email protected]
}
notification_email_from [email protected]
smtp_server 10.13.211.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0 #put your interface name here. [to see interface name: $ ip a ]
virtual_router_id 51
priority 101 # 101 for master. 100 for backup. [priority of master> priority of backup]
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #password
}
virtual_ipaddress {
10.13.211.10 # use the virtual ip address.
}
}

Führen Sie nach der Konfiguration der Keepalived-Skripte bitte die folgenden Systemsteuerungsbefehle mit Root-Zugriff auf Ihrer Terminal-Shell aus, um Keepalived auf Ihrem Linux-Rechner zu starten, zu aktivieren und den Status zu überprüfen.

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

Wenn alles gut geht, gibt der folgende Befehl den Serverstatus für alle Ihre IP-Standorte zurück, wodurch sichergestellt wird, dass Ihr Linux-Server über die vollständige Einrichtung für Lastenausgleich mit hoher Verfügbarkeit verfügt.

$ while true; do ; curl 10.13.211.10 ; sleep 1; done;

Schlussworte

Wenn Sie ein Systemadministrator sind, wissen Sie, wie wichtig es ist, Ihren Server immer live und für Clients auf der ganzen Welt zugänglich zu machen. Wenn Ihr Server ausgelastet ist, wird meistens empfohlen, einen Lastausgleichsmechanismus zu aktivieren.

Es kann den Server mit Tonnen von Hits gleichzeitig schnell und zugänglich machen. Im gesamten Beitrag bin ich die Grundlagen von HAProxy, Keepalived und Nginx durchgegangen. Ich habe das Konzept und die Methoden zur Einrichtung von HAProxy, Nginx und Keepalived für den Lastenausgleich unter Linux veranschaulicht.

Bitte teilen Sie ihn mit Ihren Freunden und der Linux-Community, wenn Sie diesen Beitrag nützlich und informativ finden. Sie können auch Ihre Meinung zu diesem Beitrag in den Kommentarbereich schreiben.


Linux
  1. So installieren und konfigurieren Sie Nginx, WordPress und Mysql 8 in Rocky Linux/Centos 8

  2. Überwachen Sie Linux-Server mit Prometheus und Grafana

  3. So installieren und richten Sie cPanel auf einem Linux-Server ein

  4. So richten Sie eine einfache nodejs-App mit nginx und pm2 auf einem Ubuntu-Server ein

  5. Nginx-Lastenausgleich

Lastenausgleich mit HAProxy, Nginx und Keepalived unter Linux

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

So installieren und konfigurieren Sie den Nginx-Webserver unter Oracle Linux 8

So konfigurieren Sie Load Balancing mit NGINX in Jelastic Cloud

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein

So richten Sie Logstash unter Linux mit ElasticSearch, Redis, Nginx ein