Nginx-Lastausgleichsalgorithmus und Failover-Analyse

Nginx-Lastausgleichsalgorithmus und Failover-Analyse

Überblick

Der Lastenausgleich von Nginx bietet Upstream-Server (Server, auf die von der echten Geschäftslogik zugegriffen wird), Lastenausgleich, Failover, Wiederholungsversuch bei Fehlern, Fehlertoleranz, Integritätsprüfungen usw.
Wenn ein Upstream-Server (der Server, auf den die eigentliche Geschäftslogik zugreift) ausfällt, kann er auf andere Upstream-Server (die Server, auf die die eigentliche Geschäftslogik zugreift) übertragen werden.

Konfiguration

Upstream-BackServer{
    Server 127.0.0.1:8080;
    Server 127.0.0.1:8081;
  }
  
  Server {
    hören Sie 80;
    Servername www.itmayiedu.com;
    Standort / {
      ### Geben Sie den Lastenausgleichsserver des Upstreamservers an: proxy_pass http://backServer;
      Index Index.html Index.htm;
    }
  }

Lastausgleichsalgorithmus

Jede Anfrage wird in chronologischer Reihenfolge einem anderen Backend-Dienst zugewiesen. Bei einem Absturz eines Backend-Servers wird das fehlerhafte System automatisch entfernt, sodass der Benutzerzugriff nicht beeinträchtigt wird.

Gewicht (Polling-Gewicht)

Je größer der Gewichtswert ist, desto höher ist die Zugriffswahrscheinlichkeit. Dies wird hauptsächlich verwendet, wenn die Leistung jedes Back-End-Servers ungleichmäßig ist. Oder legen Sie in der Master-Slave-Situation einfach unterschiedliche Gewichte fest, um eine sinnvolle und effektive Nutzung der Hostressourcen zu erreichen.

Normalerweise im Verhältnis

Upstream-BackServer{
 Server 127.0.0.1:8080 Gewicht=1;
 Server 127.0.0.1:8081 Gewicht=2;
 }

ip_hash

Jede Anforderung wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass Besucher mit derselben IP-Adresse auf einen festen Backend-Server zugreifen und das Problem der Sitzungsfreigabe dynamischer Webseiten effektiv lösen können. Allgemein bekannt als IP-Bindung.

Upstream-BackServer{
   Server 127.0.0.1:8080;
   Server 127.0.0.1:8081;
   ip_hash; 
 }

fair (Drittanbieter)

Der Fair-Algorithmus ist ein intelligenterer Lastausgleichsalgorithmus als Weight und IP_Hash. Er kann die Last intelligent entsprechend der Seitengröße und der Ladezeit ausgleichen. Das heißt, er verteilt Anfragen entsprechend der Antwortzeit des Backend-Servers und gibt Anfragen mit kürzerer Antwortzeit Vorrang. Nginx selbst unterstützt Fair nicht. Wenn dieser Planungsalgorithmus erforderlich ist, muss das Modul upstream_fair installiert werden.

url_hash (Drittanbieter)

Durch die Verteilung der Anfragen entsprechend den Hash-Ergebnissen der aufgerufenen URLs, sodass jede URL an einen Backend-Server weitergeleitet wird, kann die Effizienz des Backend-Cache-Servers weiter verbessert werden. Nginx selbst unterstützt url_hash nicht. Wenn dieser Planungsalgorithmus erforderlich ist, müssen Sie das Nginx-Hash-Paket installieren.

Failover der Nginx-Konfiguration

  • Wenn der Upstream-Server (Real Access Server) ausfällt oder nicht rechtzeitig antwortet, sollte direkt auf den nächsten Server umgeschaltet werden, um eine hohe Verfügbarkeit des Servers sicherzustellen.
  • Das Timeout zwischen Nginx und dem Upstream-Server (der tatsächlich aufgerufene Server). Das Timeout für die Verbindung zum Backend-Server_das Timeout für das Initiieren eines Handshakes und das Warten auf eine Antwort. Proxy-Verbindungstimeout 1 s;
  • Die Timeout-Periode, die Nginx an den Upstream-Server sendet (den Server, auf den tatsächlich zugegriffen wurde), beträgt proxy_send_timeout 1s;
  • nginx akzeptiert den Upstream-Server (den Server, auf den tatsächlich zugegriffen wurde) Timeout Proxy_Read_Timeout 1 s;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Beispiel zum Aktivieren des Brotli-Komprimierungsalgorithmus für Nginx
  • Beispiel für die Aktivierung der Brotli-Algorithmus-Komprimierung in Nginx
  • Nginx verwendet den Gzip-Algorithmus zum Komprimieren von Nachrichten
  • Detaillierte Erläuterung der zugrunde liegenden Implementierungsmethode des Nginx-Polling-Algorithmus
  • Ein kurzes Verständnis mehrerer Planungsalgorithmen für den siebenschichtigen Lastenausgleich von Nginx
  • C# implementiert den glatten, gewichteten Polling-Algorithmus von Nginx
  • Detaillierte Analyse der vier Planungsalgorithmen von nginx und erweiterte
  • Detaillierte Erläuterung des Implementierungsprozesses von Nginx zur Aktivierung des Brotli-Komprimierungsalgorithmus

<<:  Erläuterung des MySQL-Multitabellen-Join-Abfragebeispiels

>>:  Grundlegende Anwendungsbeispiele für benannte Slots in Vue

Artikel empfehlen

Detaillierte Verwendung des Vue-Timers

In diesem Artikelbeispiel wird der spezifische Co...

So konvertieren Sie ein JavaScript-Array in eine Baumstruktur

1. Nachfrage Das Backend stellt solche Daten bere...

Einführung in die Verwendung gängiger XHTML-Tags

Es gibt viele Tags in XHTML, aber nur wenige werd...

MySQL-Batch entfernt Leerzeichen in einem bestimmten Feld

Gibt es in MySQL eine Möglichkeit, Leerzeichen st...

Verwendung des Docker-Systembefehlssatzes

Inhaltsverzeichnis Docker-System df Docker-System...

Detaillierter Installationsprozess und Prinzip des Vue-Routers

Inhaltsverzeichnis 1. Implementierungsprinzip des...

Installationshandbuch für VMware Workstation 15 Pro (für Anfänger)

01. VMware Workstation Pro 15 herunterladen Herun...

JS implementiert kreisförmiges Ziehen und Schieben des Fortschrittsbalkens

In diesem Artikelbeispiel wird der spezifische JS...

So ändern Sie das Anfangskennwort eines Benutzers in mysql5.7

Wenn Benutzer MySQL-Datenbanken zum ersten Mal in...

So bringen Sie Ihren Browser dazu, mit JavaScript zu sprechen

Inhaltsverzeichnis 1. Das einfachste Beispiel 2. ...