1. ÜbersichtZuvor haben wir Keepalived verwendet, um eine hohe Verfügbarkeit von Nginx-Diensten im Dual-Machine-Aktiv-Standby-Modus zu erreichen, aber es gab mehrere Probleme, die nicht gelöst werden konnten. Lassen Sie uns diese heute gemeinsam besprechen. 1) Wenn beim Dual-Machine-Active-Standby-Mechanismus der Keepalived-Dienst ausfällt, wird die Standby-Maschine automatisch aktiviert, um Dienste bereitzustellen. Wenn der Nginx-Dienst jedoch aufgrund übermäßiger Belastung ausfällt, zeigt die virtuelle IP nicht auf die Standby-Maschine. 2) Das Merkmal des Dual-Machine-Active-Standby besteht darin, dass nur eine Maschine Dienste bereitstellt und die Standby-Maschine erst dann Dienste bereitstellt, wenn der Keepalived-Dienst der Host-Maschine ausfällt, was zu einer enormen Ressourcenverschwendung führt. 3) Derzeit ist es beliebt, Cloud-Server zu mieten, um die Produkte des Unternehmens zu betreiben. Unterstützt der Cloud-Server virtuelle IPs? Heute werden wir die drei oben genannten Fragen erklären. 2. Verwenden Sie Keepalived, um Nginx automatisch neu zu starten2.1 Nginx mit Shell-Skript neu startenKeepalived kann Nginx nicht direkt starten, aber Shell-Skripte ausführen. Deshalb müssen wir Nginx hier mit der Hilfe von Shell-Skripten starten. Erstellen Sie im Verzeichnis /etc/keepalived ein neues Skript check_nginx.sh. Der spezifische Inhalt des Skripts ist wie folgt: #!/bin/bash # Führen Sie den Befehl aus, um den Nginx-Prozess anzuzeigen und ihn in die Variable A einzufügen A=`ps -C nginx --no-header | wc -l` # Stellen Sie fest, ob es ausgefallen ist. Wenn es ausgefallen ist, versuchen Sie, es neu zu starten. Wenn der Neustart fehlschlägt, stoppen Sie Keepalived wenn [ $A -eq 0 ];dann /usr/local/nginx/sbin/nginx Schlaf 3 wenn [ `ps -C nginx --no-header | wc -l` -eq 0 ];dann alles töten, am Leben bleiben fi fi Das Skript stammt aus dem Internet 2.2 Erteilen Sie dem Skript Ausführungsberechtigungen# chmod +x /etc/keepalived/check_nginx.sh 2.3 Konfiguration zur Keepalived-Konfigurationsdatei hinzufügenÖffnen Sie die Keepalived-Konfigurationsdatei, # vi /etc/keepalived/keepalived.conf Ändern Sie die Konfigurationsdatei und fügen Sie die Konfiguration von vrrp_script und track_script hinzu. Die Konfiguration lautet wie folgt: global_defs { # Global eindeutige Hostkennung router_id server_a } vrrp_script check_nginx { Skript "/etc/keepalived/check_nginx.sh" Intervall 3 # Führt das Shell-Skript alle 3 Sekunden aus. Gewicht 10 # Wenn das Skript erfolgreich ausgeführt wird, erhöht sich das Gewicht um 10 } vrrp_instance VI_1 { # Gibt an, ob es sich um einen Master-Knoten oder einen Backup-Knoten handelt. Der Wert ist MASTER oder BACKUP Zustand MASTER #Gebundene Netzwerkkartenschnittstelle ens33 # Virtuelle Router-ID, stellen Sie sicher, dass die primären und Backup-Knoten konsistent sind virtual_router_id 51 # Gewichtspriorität 100 # Synchrone Prüfzeit, das Standardintervall beträgt 1 Sekunde advert_int 1 # Passwort für Authentifizierung und Autorisierung. Alle aktiven und Standby-Server müssen die gleiche Authentifizierung haben { Authentizitätstyp PASS Auth_Passwort 1111 } Titel_Skript { check_nginx } # Virtuelle IP virtuelle_IP-Adresse { 192.168.1.88 } } 2.4 Keepalived-Dienst neu startenNach dem Neustart stellte ich fest, dass Nginx kurz nach dem Stoppen automatisch startete. 3. Aufbau eines Dual-Active-Hot-Standby3.1 Übersicht über Dual Active Hot StandbyAufgrund des Dual-Machine-Master-Slave-Mechanismus stellt immer nur ein Server Dienste für die Außenwelt bereit und die Konfigurationen der Master- und Backup-Maschinen sind identisch, was zu einer enormen Ressourcenverschwendung führt. Dual-Active Hot Standby löst dieses Problem. Das Prinzip von Dual-Active Hot Standby besteht darin, dass zwei Server Keepalived verwenden, um sich gegenseitig als aktives Backup zu dienen, sodass zwei virtuelle IPs erforderlich sind. Anschließend wird mithilfe der DNS-Polling-Konfiguration ein Domänenname im Round-Robin-Verfahren an die beiden virtuellen IPs weitergeleitet, wodurch letztendlich eine hohe Verfügbarkeit erreicht wird. 3.2 SzenariobeschreibungVirtuelle IP1: 192.168.1.88 Virtuelle IP2: 192.168.1.66 Eine Server-IP (primär): 192.168.1.144 B-Server-IP (Backup): 192.168.1.22 3.3 Ändern der A-ServerkonfigurationDie Konfiguration ist wie folgt: ! Konfigurationsdatei für Keepalived global_defs { # Global eindeutige Hostkennung router_id server_a } vrrp_instance VI_1 { # Gibt an, ob es sich um einen Master-Knoten oder einen Backup-Knoten handelt. Der Wert ist MASTER oder BACKUP Zustand MEISTER #Gebundene Netzwerkkartenschnittstelle ens33 # Virtuelle Router-ID, stellen Sie sicher, dass die primären und Backup-Knoten konsistent sind virtual_router_id 51 # Gewichtspriorität 100 # Synchrone Prüfzeit, das Standardintervall beträgt 1 Sekunde advert_int 1 # Passwort für Authentifizierung und Autorisierung. Alle aktiven und Standby-Server müssen die gleiche Authentifizierung haben { Authentizitätstyp PASS Auth_Passwort 1111 } # Virtuelle IP virtuelle_IP-Adresse { 192.168.1.88 } } vrrp_instance VI_2 { # Gibt an, ob es sich um einen Master-Knoten oder einen Backup-Knoten handelt. Der Wert ist MASTER oder BACKUP Status BACKUP #Gebundene Netzwerkkartenschnittstelle ens33 # Virtuelle Router-ID, stellen Sie sicher, dass die primären und Backup-Knoten konsistent sind virtual_router_id 52 # Gewichtspriorität 80 # Synchrone Prüfzeit, das Standardintervall beträgt 1 Sekunde advert_int 1 # Passwort für Authentifizierung und Autorisierung. Alle aktiven und Standby-Server müssen die gleiche Authentifizierung haben { Authentizitätstyp PASS Auth_Passwort 1111 } # Virtuelle IP virtuelle_IP-Adresse { 192.168.1.66 } } 3.4 Ändern Sie die B-ServerkonfigurationDie Konfiguration ist wie folgt: ! Konfigurationsdatei für Keepalived global_defs { Router-ID Server_b } vrrp_instance VI_1 { # Auf Sicherungsstatus BACKUP setzen Schnittstelle ens33 virtuelle_Router_ID 51 # Das Gewicht ist niedriger eingestellt als die Hostpriorität 90 Anzeige_int 1 Authentifizierung Authentizitätstyp PASS Auth_Passwort 1111 } # Die virtuelle IP muss für den primären und den Backup-Server auf die gleiche virtuelle IP-Adresse eingestellt werden. 192.168.1.88 } } vrrp_instance VI_2 { # Auf Masterstatus MASTER setzen Schnittstelle ens33 virtuelle_Router_ID 52 # Das Gewicht ist niedriger als die Hostpriorität 100 eingestellt Anzeige_int 1 Authentifizierung Authentizitätstyp PASS Auth_Passwort 1111 } # Die virtuelle IP muss für den primären und den Backup-Server auf die gleiche virtuelle IP-Adresse eingestellt werden. 192.168.1.66 } } 3.5 Keepalived auf beiden Servern neu startenStarten Sie Keepalived einfach neu. 3.6 DNS-Round-Robin einrichtenWenden Sie sich an Ihren Netzbetreiber, um das Problem zu beheben. 4. Lastausgleich für Cloud-ServerHeutzutage entscheiden sich viele Unternehmen für die Anmietung von Cloud-Servern zum Betrieb ihrer Produkte, da dies kostengünstiger und stabiler ist und Fachleute für Betrieb und Wartung zuständig sind. Allerdings unterliegen Sie bei der Nutzung eines Cloud-Servers den Beschränkungen des Cloud-Dienstbetreibers. Nehmen wir als Beispiel die virtuelle IP. Einige Cloud-Dienstbetreiber unterstützen sie nicht. Wenn die virtuelle IP nicht unterstützt wird, kann nur auf die Keepalived-Lösung verzichtet werden. Aber auch wenn Keepalived nicht verwendet werden kann, gibt es immer noch Lösungen für die hohe Verfügbarkeit von Nginx. Viele Cloud-Dienstanbieter haben ihre eigenen Lastausgleichsdienste eingeführt (z. B. Lastausgleichs-SLB von Alibaba Cloud und Lastausgleichs-CLB von Tencent Cloud). Wir können es einfach direkt mieten und müssen es nicht selbst konfigurieren. 5. ÜbersichtHeute habe ich über den automatischen Neustart von Nginx durch KeepAlived, den Aufbau der Dual-Active-Hot-Standby-Hochverfügbarkeit von Keepalived und die Lastausgleichslösung für Cloud-Server gesprochen. Ich hoffe, es wird für alle hilfreich sein. Dies ist das Ende dieses Artikels über die Verwendung von Keepalived zur Implementierung des automatischen Neustarts von Nginx und der Dual-Active-Hot-Standby-Hochverfügbarkeit. Weitere Informationen dazu, wie Keepalived den automatischen Neustart von Nginx implementieren kann, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Kleines Problem mit dem Abstand zwischen Label und Eingabe im Google Browser
In diesem Blog besprechen wir zehn Leistungseinst...
Code Wissenspunkte 1. Kombinieren Sie fullpage.js...
1. Problembeschreibung: MysqlERROR1698 (28000)-Lö...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis 1 Mount-Verzeichnisse und Date...
Inhaltsverzeichnis 1. Anti-Shake-Funktion 2. Verw...
Vorwort vsftp ist eine benutzerfreundliche und si...
einführen Ein Diagramm ist eine grafische Darstel...
Vue-Router-Übergänge sind eine schnelle und einfa...
Tomcat unter Linux starten und herunterfahren Sta...
<meta http-equiv="x-ua-kompatibel" co...
Ereignisse können die Ausführung von SQL-Code ein...
Inhaltsverzeichnis 1. Swap-Partition SWAP 1.1 Aus...
1. Übersicht Beim täglichen Betrieb und bei der W...
Inhaltsverzeichnis Hintergrund zum Schreiben Proj...