suchen
HeimBetrieb und InstandhaltungNginxNginx-Hochverfügbarkeitsmethode

Vorbereitungsarbeiten:

Nginx-Hochverfügbarkeitsmethode

 192.168.16.128

 192.168.16.129

Zwei virtuelle Maschinen. Nginx installieren

Nginx installieren

Yum-Quelldatei aktualisieren:

rpm-ivhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

​wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

Nginx installieren:

​ yum-yinstallnginx

Betriebsbefehl:

systemctlstartnginx;#StartNginx

systemctlstopnginx;#stopNginx

Was ist Hochverfügbarkeit?

Hochverfügbarkeit HA (HighAvailability) 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 Wege 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 die VRRP-Funktion (Virtual Router Redundancy Protocol) hinzugefügt, die eine hohe Verfügbarkeit erreichen kann. 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 Haupt-Master-Knoten kontinuierlich (Multicast-)Heartbeat-Nachrichten an den Backup-Knoten, um dem Backup-Backup-Knoten mitzuteilen, dass er noch aktiv ist. Wenn der Haupt-Master-Knoten ausfällt, kann er keine Heartbeat-Nachrichten senden Der Backup-Knoten kann keine Heartbeat-Nachrichten senden. 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

keepalived installieren

Sie können es direkt mit yum installieren. Mit dieser Methode werden Abhängigkeiten automatisch installiert:

​ yum-yinstallkeepalived

Ändern Sie die Keepalived-Konfigurationsdatei des Hosts (192.168.16.128)

Bei der Installation mit yum wird die Konfigurationsdatei unter /etc/keepalived erstellt:

vikeepalived.conf

​keepalived.conf:

​ #Erkennungsskript

vrrp_scriptchk_http_port{

​script"/usr/local/src/check_nginx_pid.sh"#Heartbeat-Ausführungsskript, um zu erkennen, ob Nginx gestartet ist

Intervall2# (Intervall zur Erkennung der Skriptausführung, Einheit sind Sekunden)

Gewicht2#Gewicht

}

​#vrrp-Instanzdefinitionsteil

vrrp_instanceVI_1{

stateMASTER#Geben Sie die Rolle von Keepalived an, MASTER ist die Hauptrolle und BACKUP ist die Backup-Rolle

interfaceens33#Die aktuelle Netzwerkschnittstellenkarte für die VRRP-Kommunikation (aktuelle Centos-Netzwerkkarte) verwendet ifconfig, um Ihre spezifische Netzwerkkarte zu überprüfen

​virtual_router_id66#Virtuelle Routennummer, Master und Slave müssen immer

sein Priorität100#Priorität, je größer der Wert, desto höher ist die Priorität beim Erhalten und Verarbeiten der Anfrage

advert_int1#Überprüfungsintervall, der Standardwert ist 1s (vrrp-Multicast-Zyklussekunden)

​#authorizedaccess

Authentifizierung{

auth_typePASS#Legen Sie den Verifizierungstyp und das Passwort fest. MASTER und BACKUP müssen für die normale Kommunikation dasselbe Passwort verwenden

auth_pass1111

}

track_script{

chk_http_port# (Anruferkennungsskript)

}

​virtual_ipaddress{

​192.168.16.130#Definieren Sie eine virtuelle IP (VIP), 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 ipaddr

. 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_scriptchk_http_port{

​script"/usr/local/src/check_nginx_pid.sh"#Heartbeat-Ausführungsskript, um zu erkennen, ob Nginx gestartet ist

Intervall2# (Intervall für die Ausführung des Erkennungsskripts)

Gewicht2#Gewicht

}

​#vrrp-Instanzdefinitionsteil

vrrp_instanceVI_1{

​stateBACKUP#Geben Sie die Rolle von Keepalived an, MASTER ist die Hauptrolle, BACKUP ist die Sicherung

interfaceens33#Die aktuelle Netzwerkschnittstellenkarte für die VRRP-Kommunikation (aktuelle Centos-Netzwerkkarte) verwendet ifconfig, um Ihre spezifische Netzwerkkarte zu überprüfen

​virtual_router_id66#Virtuelle Routennummer, Master und Slave müssen immer

sein Priorität99#Priorität, je größer der Wert, desto höher ist die Priorität beim Erhalten und Verarbeiten der Anfrage

advert_int1#Überprüfungsintervall, der Standardwert ist 1s (vrrp-Multicast-Zyklussekunden)

​#authorizedaccess

Authentifizierung{

auth_typePASS#Legen Sie den Verifizierungstyp und das Passwort fest. MASTER und BACKUP müssen für die normale Kommunikation dasselbe Passwort verwenden

auth_pass1111

}

track_script{

chk_http_port# (Anruferkennungsskript)

}

​virtual_ipaddress{

​192.168.16.130#Definieren Sie eine virtuelle IP (VIP), Sie können mehr als eine festlegen, eine pro Zeile

}

}

Erkennungsskript:

​ #!/bin/bash

​#Erkennen Sie, ob Nginx gestartet ist

A=`ps-Cnginx--no-header|wc-l`

if[$A-eq0];then#Wenn Nginx nicht gestartet ist, starten Sie Nginx

systemctlstartnginx#restartnginx

​if[`ps-Cnginx--no-header|wc-l`-eq0];then#nginx kann nicht neu gestartet werden, stoppen Sie den Keepalived-Dienst und führen Sie die VIP-Übertragung durch

 killallkeepalived

 fi

 fi

Skriptautorisierung: chmod775check_nginx_pid.sh

Hinweis: Das Skript muss autorisiert sein, andernfalls hat es keine Zugriffsberechtigung. Hier werden zwei Server ausgeführt, VIP (virtuelle_IP-Adresse: 192.168.16.130). Wir greifen direkt über VIP in der Produktionsumgebung auf den Dienst zu.

Nginx-Fehler simulieren:

Ändern Sie die Nginx-HTML-Seite, auf die die beiden Server standardmäßig zugreifen, als Unterschied.

Greifen Sie zunächst über VIP auf 192.168.16.130 zu. Auf der Seite wird 192.168.16.128 angezeigt. Dies zeigt an, dass es sich derzeit um einen vom Hauptserver bereitgestellten Dienst handelt.

Zu diesem Zeitpunkt führt der Hauptserver 192.168.16.128 den Befehl aus:

systemctlstopnginx;#stopnginx

Als ich VIP (192.168.16.130) erneut besuchte, stellte ich fest, dass die Seite immer noch angezeigt wurde: 192.168.16.128 Dies war 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 Produktion auf Unternehmensebene dar Umgebung geschaffen wurde.

Es gibt viele Funktionen in Keepalived, z. B. E-Mail-Erinnerungen usw., die jedoch nicht für den Betrieb verfügbar sind. Sie können die Dokumentation auf der offiziellen Website lesen.

Das obige ist der detaillierte Inhalt vonNginx-Hochverfügbarkeitsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Nginx vs. Apache: Leistung, Skalierbarkeit und EffizienzNginx vs. Apache: Leistung, Skalierbarkeit und EffizienzApr 19, 2025 am 12:05 AM

Nginx und Apache sind beide leistungsstarke Webserver mit einzigartigen Vor- und Nachteilen in Bezug auf Leistung, Skalierbarkeit und Effizienz. 1) Nginx funktioniert bei der Behandlung statischer Inhalte und dem Umkehren von Proxen, geeignet für hohe Parallelitätsszenarien. 2) Apache funktioniert bei der Verarbeitung dynamischer Inhalte besser und eignet sich für Projekte, für die ein reichhaltiges Modulunterstützung erforderlich ist. Die Auswahl eines Servers sollte basierend auf Projektanforderungen und Szenarien ermittelt werden.

Der ultimative Showdown: Nginx vs. ApacheDer ultimative Showdown: Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginx eignet sich zum Umgang mit hohen gleichzeitigen Anforderungen, während Apache für Szenarien geeignet ist, in denen komplexe Konfigurationen und funktionale Erweiterungen erforderlich sind. 1.Nginx nimmt eine ereignisorientierte, nicht blockierende Architektur an und eignet sich für Umgebungen mit hoher Konsequenz. 2. Apache übernimmt Prozess- oder Threadmodell, um ein reiches Modul -Ökosystem bereitzustellen, das für komplexe Konfigurationsanforderungen geeignet ist.

Nginx in Aktion: Beispiele und reale AnwendungenNginx in Aktion: Beispiele und reale AnwendungenApr 17, 2025 am 12:18 AM

NGINX kann verwendet werden, um die Leistung, Sicherheit und Skalierbarkeit der Website zu verbessern. 1) Als Reverse Proxy und Load Balancer kann Nginx Back-End-Dienste optimieren und den Verkehr teilen. 2) Durch ereignisgesteuerte und asynchrone Architektur verarbeitet Nginx effizient hohe gleichzeitige Verbindungen. 3) Konfigurationsdateien ermöglichen eine flexible Definition von Regeln wie statischer Dateiservice und Ladeausgleich. 4) Optimierungsvorschläge umfassen die Aktivierung der GZIP -Komprimierung, die Verwendung von Cache und das Einstellen des Arbeitsprozesses.

Nginx -Einheit: Unterstützung verschiedener ProgrammiersprachenNginx -Einheit: Unterstützung verschiedener ProgrammiersprachenApr 16, 2025 am 12:15 AM

NginxUnit unterstützt mehrere Programmiersprachen und wird durch modulares Design implementiert. 1. Ladesprachmodul: Laden Sie das entsprechende Modul gemäß der Konfigurationsdatei. 2. Anwendungsstart: Führen Sie den Anwendungscode aus, wenn die aufrufende Sprache ausgeführt wird. 3. Anforderungsverarbeitung: Leiten Sie die Anfrage an die Anwendungsinstanz weiter. 4. Antwortrückgabe: Gibt die verarbeitete Antwort an den Client zurück.

Wählen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre AnforderungenWählen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre AnforderungenApr 15, 2025 am 12:04 AM

Nginx und Apache haben ihre eigenen Vor- und Nachteile und eignen sich für verschiedene Szenarien. 1.Nginx ist für hohe Parallelitäts- und geringe Ressourcenverbrauchsszenarien geeignet. 2. Apache eignet sich für Szenarien, in denen komplexe Konfigurationen und reichhaltige Module erforderlich sind. Durch den Vergleich ihrer Kernfunktionen, Leistungsunterschiede und Best Practices können Sie die Serversoftware auswählen, die Ihren Anforderungen am besten entspricht.

So starten Sie NginxSo starten Sie NginxApr 14, 2025 pm 01:06 PM

Frage: Wie starte ich Nginx? Antwort: Installieren Sie Nginx Startup Nginx -Verifizierung Nginx Is Nginx Start Erkunden

So überprüfen Sie, ob Nginx gestartet wirdSo überprüfen Sie, ob Nginx gestartet wirdApr 14, 2025 pm 01:03 PM

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 man nginx schließtWie man nginx schließtApr 14, 2025 pm 01:00 PM

To shut down the Nginx service, follow these steps: Determine the installation type: Red Hat/CentOS (systemctl status nginx) or Debian/Ubuntu (service nginx status) Stop the service: Red Hat/CentOS (systemctl stop nginx) or Debian/Ubuntu (service nginx stop) Disable automatic startup (optional): Red Hat/CentOS (systemctl disabled nginx) or Debian/Ubuntu (syst

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung