So erreichen Sie eine hohe Nginx-Verfügbarkeit
Vorbereitung:
192.168.16.128
192.168.16.129
Zwei virtuelle Maschinen. Installieren Sie Nginx
Installieren Sie Nginx
Yum-Quelldatei aktualisieren:
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
Installieren Sie Nginx:
lecker -y installiere nginx
Betriebsbefehl:
systemctl starte nginx; #Starte Nginx
systemctl stop nginx; #Stop Nginx
Was ist Hochverfügbarkeit?
Hochverfügbarkeit HA (High Availability) ist einer der Faktoren, die beim Entwurf einer verteilten Systemarchitektur berücksichtigt werden müssen. Dies bezieht sich normalerweise auf die Reduzierung der Zeit, in der das System keine Dienste bereitstellen kann. Wenn ein System immer Dienste bereitstellen kann, dann liegt die Verfügbarkeit bei 100 %, es treten jedoch unvorhergesehene Umstände auf. Wir können also nur versuchen, Serviceausfälle so weit wie möglich zu reduzieren.
Problem gelöst?
In Produktionsumgebungen wird Nginx häufig als Reverse-Proxy zur Bereitstellung externer Dienste verwendet. Allerdings wird es bei Nginx eines Tages unweigerlich zu Ausfällen kommen, beispielsweise zu Serverausfällen. Wenn Nginx ausfällt, sind alle extern bereitgestellten Schnittstellen nicht mehr zugänglich.
Obwohl wir nicht garantieren können, dass der Server zu 100 % verfügbar ist, müssen wir einen Weg finden, diese Tragödie zu vermeiden. Heute verwenden wir Keepalived, um Nginx
zu implementieren Hohe Verfügbarkeit.
Hot-Backup-Lösung mit zwei Maschinen
Diese Lösung ist die am weitesten verbreitete Hochverfügbarkeitslösung bei inländischen Unternehmen. Das Hot-Backup mit zwei Servern bedeutet tatsächlich, dass ein Server Dienste bereitstellt und der andere im Standby-Zustand für einen bestimmten Dienst ist seinen Platz.
Was ist Keepalived?
Die Keepalived-Software wurde ursprünglich für die LVS-Lastausgleichssoftware entwickelt, um den Status jedes Dienstknotens im LVS-Clustersystem zu verwalten und zu überwachen. Später wurde VRRP (Virtual Router Redundancy Protocol) hinzugefügt, um eine hohe Verfügbarkeit zu erreichen. Daher kann Keepalived neben der Verwaltung von LVS-Software auch als hochverfügbare Lösungssoftware für andere Dienste (wie Nginx, Haproxy, MySQL usw.) verwendet werden
Failover-Mechanismus
Die Failover-Übertragung zwischen Keepalived-Hochverfügbarkeitsdiensten wird über VRRP implementiert.
Wenn der Keepalived-Dienst normal funktioniert, sendet der Master-Knoten kontinuierlich (Multicast-)Heartbeat-Nachrichten an den Backup-Knoten, um dem Backup-Knoten mitzuteilen, dass er noch aktiv ist. Wenn der Master-Knoten ausfällt, kann er keine Heartbeat-Nachrichten senden, der Backup-Knoten jedoch Daher kann der Knoten den Heartbeat vom Haupt-Master-Knoten nicht mehr erkennen und ruft daher sein eigenes Übernahmeprogramm auf, um die IP-Ressourcen und Dienste des Haupt-Master-Knotens zu übernehmen. Wenn der Master-Knoten wiederhergestellt ist, gibt der Backup-Knoten die IP-Ressourcen und Dienste frei, die er übernommen hat, als der Master-Knoten ausgefallen ist, und kehrt zu seiner ursprünglichen Backup-Rolle zurück.
Implementierungsprozess
Installiere keepalived
Sie können es direkt mit der Yum-Methode installieren, wodurch automatisch Abhängigkeiten installiert werden:
Lecker -y installiere keepalived
Ändern Sie die Keepalived-Konfigurationsdatei des Hosts (192.168.16.128). Bei der Installation mit yum wird die Konfigurationsdatei unter /etc/keepalived erstellt:
vi keepalived.conf
keepalived.conf:
#Erkennungsskript
vrrp_script chk_http_port {
Skript „/usr/local/src/check_nginx_pid.sh“ #Heartbeat-Ausführungsskript, um zu erkennen, ob Nginx gestartet ist
Intervall 2 Intervall 2 #(Intervall zur Erkennung der Skriptausführung, Einheit sind Sekunden)
Gewicht 2 }
#vrrp Abschnitt zur Instanzdefinition
vrrp_instance VI_1 {
state MASTER # Geben Sie die Rolle von Keepalived an, MASTER ist die Hauptrolle und BACKUP ist die Backup-Rolle
interface ens33 # Die aktuelle Netzwerkschnittstellenkarte für die VRRP-Kommunikation (aktuelle Centos-Netzwerkkarte). Verwenden Sie ifconfig, um Ihre spezifische Netzwerkkarte zu überprüfen
Virtual_router_id 66 # Virtuelle Routennummer, Master und Slave müssen immer gleich sein
Priorität 100 # Priorität, je größer der Wert, desto höher die Priorität für die Bearbeitung der Anfrage
advert_int 1 # Prüfintervall, der Standardwert ist 1s (vrrp-Multicast-Zyklussekunden)
#authorizedaccess
Authentifizierung {
auth_type PASS #Legen Sie den Verifizierungstyp und das Passwort fest. MASTER und BACKUP müssen für die normale Kommunikation dasselbe Passwort verwenden auth_pass 1111
}
track_script {
chk_http_port #(Anruferkennungsskript)
}
Virtuelle_ipaddress {
192.168.16.130 192.168.16.130 # Virtuelle IP (VIP) definieren, Sie können mehr als eine festlegen, eine pro Zeile
}
}
VIP kann in virtual_ipaddress konfiguriert werden und über VIP kann online auf Dienste zugegriffen werden.
Die Schnittstelle muss entsprechend der Servernetzwerkkarte eingestellt werden. Die übliche Anzeigemethode ist IP-Adresse
Die Authentifizierungskonfiguration und der Autorisierungszugriff auf die Backup-Maschine erfordern ebenfalls dieselbe Konfiguration
Ändern Sie die Keepalived-Konfigurationsdatei der Backup-Maschine (192.168.16.129)
keepalived.conf:
#Erkennungsskript
vrrp_script chk_http_port {
Skript „/usr/local/src/check_nginx_pid.sh“ #Heartbeat-Ausführungsskript, um zu erkennen, ob Nginx gestartet ist
Intervall 2 Intervall 2 #(Intervall zur Erkennung der Skriptausführung)
Gewicht 2 }
#vrrp Abschnitt zur Instanzdefinition
vrrp_instance VI_1 {
state BACKUP # Geben Sie die Rolle von Keepalived an, MASTER ist die Hauptrolle und BACKUP ist die Backup-Rolle interface ens33 # Die aktuelle Netzwerkschnittstellenkarte für die VRRP-Kommunikation (aktuelle Centos-Netzwerkkarte). Verwenden Sie ifconfig, um Ihre spezifische Netzwerkkarte zu überprüfen
virtual_router_id 66 # Virtuelle Routennummer, Master und Slave müssen immer gleich sein Priorität 99 advert_int 1 #authorizedaccess
Authentifizierung {
auth_type PASS #Legen Sie den Verifizierungstyp und das Passwort fest. MASTER und BACKUP müssen für die normale Kommunikation dasselbe Passwort verwenden auth_pass 1111
}
track_script {
chk_http_port }
Virtuelle_ipaddress {
192.168.16.130 192.168.16.130 # Virtuelle IP (VIP) definieren, Sie können mehr als eine festlegen, eine pro Zeile
}
}
Erkennungsskript:
#!/bin/bash
#Überprüfen Sie, ob Nginx gestartet ist
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #Wenn Nginx nicht gestartet ist, starten Sie Nginx systemctl start nginx #Restart nginx
Wenn [ `ps -C nginx --no-header |wc -l` -eq 0 ];dann #nginx nicht neu gestartet werden kann, stoppen Sie den Keepalived-Dienst und führen Sie eine VIP-Übertragung durch
killall keepalived fi
fi
Skriptautorisierung: chmod 775 check_nginx_pid.sh
Hinweis: Das Skript muss autorisiert sein, sonst hat es keine Zugriffsberechtigung. Hier müssen wir zwei Server ausführen, VIP (virtuelle_ipaddress:192.168.16.130). In der Produktionsumgebung greifen wir direkt über VIP zu.
Nginx-Fehler simulieren:
Ändern Sie die Nginx-HTML-Seite, auf die die beiden Server standardmäßig zugreifen, als Unterschied.
Besuchen Sie zuerst 192.168.16.130 und greifen Sie über VIP darauf zu. Auf der Seite wird 192.168.16.128 angezeigt. Dies zeigt an, dass der Dienst derzeit vom Hauptserver bereitgestellt wird.
Zu diesem Zeitpunkt führt der Hauptserver 192.168.16.128 den folgenden Befehl aus:
systemctl stop nginx; #Stop nginx
Besuchen Sie vip (192.168.16.130) erneut und stellen Sie fest, dass die Seite weiterhin angezeigt wird: 192.168.16.128. Dies ist ein automatischer Neustart im Skript.
Schließen Sie nun direkt den Server 192.168.16.128, besuchen Sie VIP hier (192.168.16.130) und stellen Sie nun fest, dass auf der Seite 192.168.16.129 angezeigt wird. Zu diesem Zeitpunkt führt Keepalived automatisch ein Failover durch und stellt eine Hochverfügbarkeitslösung für eine Produktionsumgebung auf Unternehmensebene dar wurde gegründet.
Das obige ist der detaillierte Inhalt vonSo erreichen Sie eine hohe Nginx-Verfügbarkeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Um ein JAR -Programm auf Nginx bereitzustellen, müssen sieben Schritte befolgt werden: 1) Installieren Sie JRE, 2) Installieren von Nginx, 3) Konfigurieren von Nginx, 4) JAR bereitstellen, 5) Ausführungsberechtigungen zu Gewähren, 6) Nginx neu starten, 7) Überprüfen Sie die Bereitstellung.

Um Nginx dazu zu bringen, Apache auszuführen, müssen Sie: 1. Installieren von Nginx und Apache; 2. Konfigurieren Sie den Nginx -Agenten; 3.. Starten Sie Nginx und Apache; 4. Testen Sie die Konfiguration, um sicherzustellen, dass Sie den Apache -Inhalt nach dem Zugriff auf den Domänennamen sehen können. Darüber hinaus müssen Sie auf andere Angelegenheiten wie die Anpassung der Portnummer, die virtuelle Hostkonfiguration und die SSL/TLS -Einstellungen achten.
