Bei der herkömmlichen Methode zum Hosten eines Servers oder einer Website wird der Server über einen einzelnen HTTP-Server gehostet. Wenn Clients auf den Server zugreifen, dürfen sie auf den Server zugreifen. Aber was passiert, wenn mehrere Benutzer, umso mehr; Tausende Kunden besuchen die Website gleichzeitig und haben eine Anfrage? Was passiert, wenn der Server ausfällt? Wie verteilt der einzelne Server die Last? Um all diese Fragen zu beantworten, können wir den Begriff „Lastausgleich“ verwenden. Wenn Sie nach authentischen Tools zur Verwaltung Ihres Serververkehrs suchen, können Sie HAProxy, Nginx und Keepalived unter Linux auf jeden Fall für den Lastausgleich konfigurieren.
Grundlagen von HAProxy, Nginx und Keepalived
Nginx ist bekannt für seine Lastausgleichs- und Proxy-Dienste. Auf Load-Balancer-Servern stellen Clients über einen Load-Balancer eine Verbindung zum Server her, anstatt sich direkt mit dem Server zu verbinden. Die Verwendung von Nginx, HAProxy und Keepalived eignet sich gut für den Lastausgleich unter Linux. Wenn ein Server ausfällt, verbindet der Load Balancer Clients mit einem anderen Server, der online ist.
HAProxy ist ein kostenloses Open-Source-Lastausgleichstool für HTTP- und TCP-Webserver. Es ist in der Programmiersprache C geschrieben und verfügt über die öffentliche GNU-Lizenz. Es lässt sich hervorragend ergänzen und einfach für den Lastausgleich unter Linux konfigurieren. Der Begriff HAProxy steht für High Availability Proxy Tool. Sie können das HAProxy-Tool bereitstellen, um die Serverleistung, Verfügbarkeit und den Lastausgleich zu verbessern.
Das Keepalived-Tool fungiert als Vermittler zwischen zwei Servern und kann den Client von einem Server auf einen anderen umleiten, wenn einer von ihnen ausfällt. Keepalived arbeitet mit einem Redundanzprotokoll für virtuelle Router, um die Last auszugleichen und das Problem des Serverausfalls zu verringern. Die Verwendung von HAProxy eignet sich gut für den Lastausgleich und sorgt dafür, dass der Server immer verfügbar ist.
Daher gibt es keine Garantie dafür, dass HAProxy immer aktiv bleibt. Hier kommt Keepalived zum Sichern Ihres HAProxy. Es kann Clientanfragen an entfernte Server verteilen und den Lastausgleich der Schichten 4 und 7 (Transport- und Anwendungsschicht) übernehmen. Darüber hinaus kann HAProxy Zugriffskontrolllisten sowie Backend- und Frontend-Terminologien verwalten.
Lastausgleich mit HAProxy, Nginx und Keepalived unter Linux
Da wir bereits viel über HAproxy, Nginx und das Keepalived-Tool für Linux gesprochen haben, fahren wir mit dem Tutorial fort. In diesem Beitrag erfahren Sie, wie Sie den Lastausgleich mit HAProxy, Nginx und Keepalived unter Linux konfigurieren. Für diesen Beitrag benötigen wir grundlegende Kenntnisse auf Serverebene und grundlegende Kenntnisse im Umgang mit Linux.
Schritt 1 – Installieren Sie Nginx unter Linux für den Lastausgleich
Da wir nach Methoden suchen werden, um unseren Server leistungsfähiger zu machen, den Lastausgleich zu verbessern und die Client-Verwaltung zu verbessern, wäre die Installation des Nginx-HTTP-Webservers der erste Schritt, um den Prozess zu starten. Die Installation des Nginx-Webservers ist einfach und unkompliziert. Mit den folgenden Befehlen können Sie den Nginx-Webserver auf Ihrem Linux-Computer installieren.
- Installieren Sie den Nginx-Webserver unter Ubuntu/Debian Linux
sudo apt update
sudo apt install nginx
- Führen Sie die folgenden Befehle aus, um Nginx unter Fedora/Red Hat Linux zu installieren
yum -y install nginx
Nach der Installation des Nginx-Servers konfigurieren, aktivieren und starten wir den Server auf Ihrem Rechner. Lesen Sie diesen Beitrag, um zu erfahren, wie Sie mit dem Nginx-Server unter Linux beginnen.
Schritt 2: Installieren Sie HAproxy Load Balancer unter Linux
Nachdem Sie den Nginx-Server auf Ihrem Linux-Computer installiert und konfiguriert haben, könnte er gut als Server auf Ihrem Computer oder Netzwerk funktionieren. Da wir jedoch versuchen, einen Lastausgleichsserver zu erstellen, werden wir jetzt das HAproxy-Tool auf unserem System installieren und konfigurieren.
1. Installieren und konfigurieren Sie HAproxy unter Ubuntu für den Lastausgleich
Bevor Sie HAProxy auf Ihrem System installieren, möchten Sie möglicherweise überprüfen, ob HAProxy-Dienste bereits auf Ihrem System vorhanden sind oder nicht.
sudo apt show haproxy
Fügen Sie nun das HAProxy-Repository über PPA-Pakete zu Ihrem System hinzu. Sobald die PPA das Repository öffnet, aktualisieren Sie das Repository auf Ihrem System.
sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update
Führen Sie abschließend die folgenden Befehle auf Ihrem Ubuntu/Debian-Linux-System aus, um HAProxy auf dem System zu installieren. Überprüfen Sie nach der Installation von HAProxy die Version von HAProxy, um sicherzustellen, dass es korrekt auf Ihrem Computer installiert ist.
sudo apt install -y haproxy
haproxy -v
Sobald die HAProxy-Installation auf Ihrem Linux-Rechner abgeschlossen ist, bearbeiten wir nun das Konfigurationsskript, um HAProxy mit unserem Server zu konfigurieren. Hier bearbeiten wir einige HAProxy-Konfigurationsskripts. Seien Sie beim Bearbeiten dieser Skripts vorsichtig und sichern Sie diese Dateien, um die Standardkonfiguration wiederherzustellen, falls etwas schief geht.
Führen Sie zunächst den folgenden Befehl in Ihrer Terminal-Shell mit Root-Zugriff aus, um das HAProxy-Konfigurationsskript zu bearbeiten. Hier verwende ich das Nano-Skriptbearbeitungstool, und Sie können jedes Ihrer Lieblingstools 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 dann die Datei. Die folgenden Skriptzeilen definieren den Zustand des Frontends und Backends mit HAProxy. Geben Sie Ihre Serverdetails in die Felder Servername, IP und andere Anmeldeinformationen ein.
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_backbackend http_back
balance roundrobin
server :80 check
server :80 check
Führen Sie nun den folgenden Befehl in der Terminal-Shell aus, um das HAproxy-Skript zu bearbeiten und zu konfigurieren.
sudo nano /etc/haproxy/haproxy.cfg
Verwenden Sie das folgende Konfigurationsskript, um HAproxy-Einstellungen zu konfigurieren.
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_backbackend http_back
balance roundrobin
server :80 check
server :80 checkbackend blog_back
server :80 check
Wenn die Einrichtung abgeschlossen ist, können Sie nun das HAProxy-Tool auf Ihrem Linux-Computer neu starten, indem Sie den folgenden Systemsteuerungsbefehl mit Root-Zugriff ausführen.
sudo systemctl status haproxy
sudo systemctl restart haproxy
Jetzt können Sie den unten genannten Befehl mit Ihrer Serveradresse ausführen, um den Serverstatus zu überprüfen.
https:///haproxy?stats
2. Installieren und konfigurieren Sie HAproxy auf Fedora
Die Installation des HAProxy-Lastausgleichstools unter Fedora Linux ähnelt der Installation auf Debian/Ubuntu-Systemen. Aktualisieren Sie zunächst 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 das Setup-Skript zu sichern, 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. 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 die Datei speichern und 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 HAProxy auf Ihrem System einwandfrei funktioniert oder nicht, indem Sie den HAProxy-Status über Ihren Webbrowser abrufen.
https://10.13.211.194/haproxy?stats
Die folgenden cURL-Befehle geben neben dem HAProxy-Status auch den Deep-Server-Status zurück.
curl 10.13.211.194
curl 10.13.211.194
Schritt 3: Installieren Sie Keepalived unter Linux
Wie wir Keepalived bereits besprochen haben, gehen wir hier direkt durch den Prozess der Installation von Keepalived auf Linux-Systemen. Hier sehen wir Installations- und Konfigurationsmethoden des Keepalived-Tools unter Fedora und Debian Linux.
1. Installieren und konfigurieren Sie Keepalived unter Ubuntu/Debian
Um das Keepalived-Lastausgleichstool auf Ubuntu und anderen Debian-Linux-Systemen zu installieren, führen Sie den folgenden Befehl aus, um die wesentlichen Build-Tools auf Ihren Systemen abzurufen. Navigieren Sie dann zum Home-Verzeichnis und führen Sie den unten angegebenen wget-Befehl aus, um die komprimierte Keepalived-Datei in das Dateisystem herunterzuladen.
sudo apt-get install build-essential libssl-dev
cd ~
wget https://www.keepalived.org/software/keepalived-1.2.19.tar.gz
Wenn der Download abgeschlossen ist, verwenden Sie 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*
Jetzt können Sie die folgenden Befehle ausführen, um das Keepalived-Tool auf Ihrem Ubuntu-System zu installieren.
./configure
make
sudo make install
Wenn die Installation abgeschlossen ist, ist es an der Zeit, die Einstellungen zu bearbeiten, um Keepalived mit unserem Server zu konfigurieren. 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 den Befehl mkdir aus, um ein neues Konfigurationsskript für das Keepalived-Tool zu erstellen, und schließen Sie es dann mit dem Konfigurationsskript ab.
sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf
Verwenden Sie die folgenden Skriptzeilen, um die Keepalived-Konfigurationsdatei zu vervollständigen.
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 im Verzeichnis etc und fügen Sie die folgenden Zeilen zu Ihrem Skript hinzu.
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 vervollständigen 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 vervollständigen 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. Installieren und konfigurieren Sie Keepalived auf Fedora
Die Installation des Keepalived-Tools auf Fedora- und Red Hat-Linux-Systemen ähnelt der Installation auf Debian-Distributionen. 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, bearbeiten wir nun das Keepalived-Konfigurationsskript, um die Serverkonfiguration mit Keepalived zu konfigurieren. Bevor wir Änderungen vornehmen, erstellen wir eine Sicherungskopie des Keepalived-Konfigurationsskripts.
Führen Sie die folgenden Befehle nacheinander in 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 Lastausgleichsserver unter Linux zu konfigurieren.
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
Wenn das Setup-Skript geöffnet wird, vervollständigen Sie 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-Skripts die folgenden Systemsteuerungsbefehle mit Root-Zugriff in Ihrer Terminal-Shell aus, um Keepalived auf Ihrem Linux-Computer 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 vollständig für den Lastausgleich mit hoher Verfügbarkeit konfiguriert ist.
$ while true; do ; curl 10.13.211.10 ; sleep 1; done;
Letzte Worte
Wenn Sie ein Systemadministrator sind, wissen Sie, wie wichtig es ist, dass Ihr Server immer betriebsbereit und für Clients auf der ganzen Welt zugänglich ist. Vor allem wenn Ihr Server ausgelastet ist, empfiehlt es sich, einen Lastausgleichsmechanismus zu aktivieren.
Sie können den Server mit einer Vielzahl von Zugriffen gleichzeitig schnell und zugänglich machen. Im gesamten Beitrag habe ich die Grundlagen von HAProxy, Keepalived und Nginx besprochen. Ich habe das Konzept und die Methoden zur Konfiguration von HAProxy, Nginx und Keepalived für den Lastausgleich 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 Ihre Meinung zu diesem Beitrag auch im Kommentarbereich schreiben.
