Heim Betrieb und Instandhaltung Nginx So implementieren Sie die hohe Verfügbarkeit von Nginx in einer Produktionsumgebung

So implementieren Sie die hohe Verfügbarkeit von Nginx in einer Produktionsumgebung

May 23, 2023 am 09:25 AM
nginx

Vorbereitung:

192.168.16.128

192.168.16.129

Zwei virtuelle Maschinen. Installieren Sie Nginx.

Nginx installieren.

Hohe Verfügbarkeit (Hochverfügbarkeit) 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. Eines Tages wird es jedoch 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 eine hohe Verfügbarkeit von Nginx zu erreichen.

Dual-Server-Hot-Standby-Lösung

Diese Lösung ist die bei inländischen Unternehmen am häufigsten verwendete Hochverfügbarkeitslösung. Dual-Server-Hot-Standby bedeutet eigentlich, dass ein Server Dienste bereitstellt und der andere ein Backup für einen bestimmten Dienst ist . Status: Wenn ein Server nicht verfügbar ist, wird ein anderer an seine Stelle treten.

Was ist Keepalived?

keepalived-Software wurde ursprünglich für LVS-Lastausgleichssoftware entwickelt, um den Status jedes Serviceknotens im LVS-Clustersystem zu verwalten und zu überwachen. Später wurde vrrp (Virtual Router Redundancy Protocol, Virtual Router Redundancy Protocol) hinzugefügt, um eine hohe Verfügbarkeit zu erreichen. (verbleibendes Protokoll) Funktion. Daher kann Keepalived nicht nur LVS-Software verwalten, sondern auch als hochverfügbare Lösungssoftware für andere Dienste (z. B. Nginx, Haproxy, MySQL usw.) verwendet werden zwischen Keepalived-Hochverfügbarkeitsdiensten wird durch VRRP erreicht.

Wenn der Keepalived-Dienst normal funktioniert, sendet der Haupt-Masterknoten kontinuierlich (Multicast-)Heartbeat-Nachrichten an den Backup-Knoten, um dem Backup-Knoten mitzuteilen, dass er noch aktiv ist. Wenn der Haupt-Masterknoten ausfällt, kann er keine Heartbeat-Nachrichten senden .Nachricht kann der Standby-Knoten den Heartbeat vom Master-Knoten nicht mehr erkennen und ruft daher sein eigenes Übernahmeprogramm auf, um die IP-Ressourcen und Dienste des Master-Knotens zu übernehmen. Wenn der primäre Masterknoten wiederhergestellt ist, gibt der Backup-Knoten die IP-Ressourcen und Dienste frei, die er übernommen hat, als der primäre Knoten ausgefallen ist, und kehrt zu seiner ursprünglichen Backup-Rolle zurück.

Implementierungsprozess

Installieren Sie die Keepalived-Methode

yum-Methode zur direkten Installation. Diese Methode installiert automatisch Abhängigkeiten:

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
Nach dem Login kopieren

Ändern Sie die Keepalived-Konfigurationsdatei des Hosts (192.168.16.128).yum-Methode erstellt die Konfigurationsdatei unter /etc/keepalived:

yum -y install nginx
Nach dem Login kopieren

keepalived.conf:

systemctl start nginx; #启动nginx
systemctl stop nginx; #停止nginx
Nach dem Login kopieren

virtual_ipaddress Sie können VIP darin konfigurieren und über VIP online auf Dienste zugreifen.

Die Schnittstelle muss entsprechend der Server-Netzwerkkarte eingestellt werden. Die Authentifizierungskonfiguration für die IP-Adresse erfordert ebenfalls die gleiche Konfiguration. Die Keepalived-Konfiguration des Backup-Computers muss geändert werden Dateikeepalived.conf:

yum -y install keepalived
Nach dem Login kopieren

Erkennungsskript:

vi keepalived.conf
Nach dem Login kopieren

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(virtual_ipaddress:192.168.16.130),</code >In der Produktionsumgebung greifen wir direkt über VIP auf Dienste zu. <p ></p>Nginx-Fehler simulieren: <p ></p>Ändern Sie die Nginx-HTML-Seite, auf die die beiden Server standardmäßig zugreifen, als Unterschied. <p ></p>Besuchen Sie zuerst <code>192.168.16.130 und greifen Sie über VIP darauf 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 192.168.16.128 führt der Hauptserver den Befehl aus:

#检测脚本
vrrp_script chk_http_port {
 script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
 interval 2       #(检测脚本执行的间隔,单位是秒)
 weight 2       #权重
}
#vrrp 实例定义部分
vrrp_instance vi_1 {
 state master   # 指定keepalived的角色,master为主,backup为备
 interface ens33   # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
 virtual_router_id 66 # 虚拟路由编号,主从要一直
 priority 100   # 优先级,数值越大,获取处理请求的优先级越高
 advert_int 1   # 检查间隔,默认为1s(vrrp组播周期秒数)
 #授权访问
 authentication {
  auth_type pass #设置验证类型和密码,master和backup必须使用相同的密码才能正常通信
  auth_pass 1111
 }
 track_script {
  chk_http_port   #(调用检测脚本)
 }
 virtual_ipaddress {
  192.168.16.130   # 定义虚拟ip(vip),可多设,每行一个
 }
}
Nach dem Login kopieren

Besuchen Sie VIP erneut (192.168.16.130) und stellen Sie fest, dass auf der Seite immer noch Folgendes angezeigt wird: 192.168.16.128, dies ist ein automatischer Neustart im Skript.

Schließen Sie nun direkt den 192.168.16.128-Server, 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 einen Failover durch und eine Hochverfügbarkeitslösung für eine Produktionsumgebung auf Unternehmensebene wird eingerichtet.

Es gibt viele Funktionen in keepalived, wie z. B. E-Mail-Erinnerungen usw., aber Sie können die Dokumentation auf der offiziellen Website lesen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die hohe Verfügbarkeit von Nginx in einer Produktionsumgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server Apr 21, 2024 am 07:22 AM

Um dem Tomcat-Server den Zugriff auf das externe Netzwerk zu ermöglichen, müssen Sie Folgendes tun: Ändern Sie die Tomcat-Konfigurationsdatei, um externe Verbindungen zuzulassen. Fügen Sie eine Firewallregel hinzu, um den Zugriff auf den Tomcat-Server-Port zu ermöglichen. Erstellen Sie einen DNS-Eintrag, der den Domänennamen auf die öffentliche IP des Tomcat-Servers verweist. Optional: Verwenden Sie einen Reverse-Proxy, um Sicherheit und Leistung zu verbessern. Optional: Richten Sie HTTPS für mehr Sicherheit ein.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

Willkommen bei Nginx! Wie kann ich es lösen? Willkommen bei Nginx! Wie kann ich es lösen? Apr 17, 2024 am 05:12 AM

Um den Fehler „Willkommen bei Nginx!“ zu beheben, müssen Sie die Konfiguration des virtuellen Hosts überprüfen, den virtuellen Host aktivieren, Nginx neu laden. Wenn die Konfigurationsdatei des virtuellen Hosts nicht gefunden werden kann, erstellen Sie eine Standardseite und laden Sie Nginx neu. Anschließend wird die Fehlermeldung angezeigt verschwindet und die Website wird normal angezeigt.

So kommunizieren Sie zwischen Docker-Containern So kommunizieren Sie zwischen Docker-Containern Apr 07, 2024 pm 06:24 PM

In der Docker-Umgebung gibt es fünf Methoden für die Containerkommunikation: freigegebenes Netzwerk, Docker Compose, Netzwerk-Proxy, freigegebenes Volume und Nachrichtenwarteschlange. Wählen Sie abhängig von Ihren Isolations- und Sicherheitsanforderungen die am besten geeignete Kommunikationsmethode, z. B. die Nutzung von Docker Compose zur Vereinfachung von Verbindungen oder die Verwendung eines Netzwerk-Proxys zur Erhöhung der Isolation.

So registrieren Sie phpmyadmin So registrieren Sie phpmyadmin Apr 07, 2024 pm 02:45 PM

Um sich für phpMyAdmin zu registrieren, müssen Sie zunächst einen MySQL-Benutzer erstellen und ihm Berechtigungen erteilen, dann phpMyAdmin herunterladen, installieren und konfigurieren und sich schließlich bei phpMyAdmin anmelden, um die Datenbank zu verwalten.

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

So generieren Sie eine URL aus einer HTML-Datei So generieren Sie eine URL aus einer HTML-Datei Apr 21, 2024 pm 12:57 PM

Für die Konvertierung einer HTML-Datei in eine URL ist ein Webserver erforderlich. Dazu sind die folgenden Schritte erforderlich: Besorgen Sie sich einen Webserver. Richten Sie einen Webserver ein. Laden Sie eine HTML-Datei hoch. Erstellen Sie einen Domainnamen. Leiten Sie die Anfrage weiter.

Was tun, wenn die Installation von phpmyadmin fehlschlägt? Was tun, wenn die Installation von phpmyadmin fehlschlägt? Apr 07, 2024 pm 03:15 PM

Schritte zur Fehlerbehebung bei fehlgeschlagener phpMyAdmin-Installation: Überprüfen Sie die Systemanforderungen (PHP-Version, MySQL-Version, Webserver); aktivieren Sie die PHP-Erweiterungen (mysqli, pdo_mysql, mbstring, token_get_all); überprüfen Sie die Konfigurationsdatei Berechtigungen (Verzeichnisbesitz, Dateiberechtigungen); Firewall-Einstellungen überprüfen (Webserver-Ports auf die Whitelist setzen); Fehlerprotokolle anzeigen (/var/log/apache2/error.log); phpMyAdmin

See all articles