Um den Lastenausgleich zu verstehen, müssen Sie sich zunächst mit Forwardproxy und Reverseproxy auskennen. Notiz:
Was ist Lastenausgleich? Je mehr Besuche ein Server pro Zeiteinheit erhält, desto größer ist die Belastung des Servers. Wenn die Belastung seine Belastbarkeit übersteigt, stürzt der Server ab. Um Serverabstürze zu vermeiden und den Benutzern ein besseres Erlebnis zu bieten, verteilen wir die Serverauslastung durch Lastausgleich. Wir können viele Server zu einem Servercluster zusammenstellen. Wenn ein Benutzer eine Website besucht, greift er zuerst auf einen Zwischenserver zu, lässt diesen Zwischenserver dann einen Server mit geringerer Belastung im Servercluster auswählen und leitet die Zugriffsanforderung dann an diesen Server weiter. Auf diese Weise wird bei jedem Besuch eines Benutzers der Druck auf jedem Server im Servercluster ausgeglichen, die Serverlast wird geteilt und Serverabstürze werden vermieden. Der Lastausgleich wird durch das Reverse-Proxy-Prinzip erreicht. Mehrere gängige Methoden zum Lastenausgleich 1. Polling (Standard) Jede Anfrage wird in chronologischer Reihenfolge nacheinander einem anderen Backend-Server zugewiesen. Wenn der Backend-Server ausfällt, kann er automatisch entfernt werden. Upstream-Backserver { Server 192.168.0.14; Server 192.168.0.15; } 2. Gewicht Gibt die Polling-Wahrscheinlichkeit an. Die Gewichtung ist proportional zur Zugriffsrate und wird verwendet, wenn die Leistung des Backend-Servers ungleichmäßig ist. Upstream-Backserver { Server 192.168.0.14 Gewicht = 3; Server 192.168.0.15 Gewicht = 7; } Je höher die Gewichtung, desto größer die Besuchswahrscheinlichkeit. Im obigen Beispiel sind es 30 % bzw. 70 %. 3. Bei der obigen Methode liegt ein Problem vor. Wenn sich ein Benutzer im Lastausgleichssystem bei einem Server anmeldet und eine zweite Anfrage stellt, wird jede Anfrage auf einen der Server im Cluster verschoben, da es sich bei uns um ein Lastausgleichssystem handelt. Wenn ein Benutzer, der sich bei einem Server angemeldet hat, auf einen anderen Server verschoben wird, gehen seine Anmeldeinformationen verloren, was offensichtlich nicht sinnvoll ist. Wir können die Anweisung ip_hash verwenden, um dieses Problem zu lösen. Wenn der Client einen Server bereits besucht hat, wird die Anforderung beim erneuten Besuch des Benutzers über den Hash-Algorithmus automatisch an den Server weitergeleitet. Jede Anfrage wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass jeder Besucher auf einen festen Backend-Server zugreift, wodurch das Sitzungsproblem gelöst werden kann. Upstream-Backserver { ip_hash; Server 192.168.0.14:88; Server 192.168.0.15:80; } 4. fair (Drittanbieter) Die Anfragen werden basierend auf der Antwortzeit des Backend-Servers verteilt, wobei Anfragen mit kürzeren Antwortzeiten Vorrang erhalten. Upstream-Backserver { Server Server1; Server Server2; gerecht; } 5. url_hash (Drittanbieter) Anfragen werden entsprechend dem Hash-Ergebnis der aufgerufenen URL verteilt, sodass jede URL an denselben Backend-Server weitergeleitet wird. Dies ist effektiver, wenn der Backend-Server zwischengespeichert ist. Upstream-Backserver { Server Squid1:3128; Server Squid2:3128; Hashwert für $request_uri; Hash-Methode crc32; }123456 Der Status jedes Geräts wird wie folgt eingestellt:
Konfigurationsbeispiel: #Benutzer niemand; Arbeitsprozesse 4; Ereignisse { # Maximale Anzahl gleichzeitiger Worker-Verbindungen 1024; } http{ # Liste der Server, die upstream myproject{ ausgewählt werden sollen # Die ip_hash-Direktive leitet denselben Benutzer zum selben Server weiter. ip_hash; Server 125.219.42.4 Fehlerzeitüberschreitung = 60 s; Server 172.31.2.183; } Server{ # Abhörport listen 80; # Speicherort des Stammverzeichnisses / { # Wählen Sie die Serverliste aus: Proxy-Pass http://myproject; } } } Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der Angular-Routing-Unterrouten
>>: Detaillierte Erläuterung der Implementierung gemeinsam genutzter Module in Angular-Projekten
Inhaltsverzeichnis Lösung 1 Lösung 2 Beim Erstell...
Der <base>-Tag gibt die Standardadresse ode...
Inhaltsverzeichnis 1. Umgebung Einführung 2. Inst...
Systemumgebung: Redis-Version: 6.0.8 Docker-Versi...
Inhaltsverzeichnis Vorwort: 1. Einführung in die ...
Die Datei shutdown.bat enthält einen Satz wenn ni...
Inhaltsverzeichnis Prämisse TypeScript vs. JavaSc...
fragen: Ich habe den Hyperlink mit CSS formatiert...
Heute zeige ich Ihnen einen gut aussehenden Zähle...
CSS3 erreicht coole 3D-Rotationsperspektive 3D-An...
1. Voraussetzungen Wir verwenden zum Importieren ...
DOKTYP Doctype wird verwendet, um dem Browser mit...
Verfahren: Nehmen wir „less“ im tatsächlichen Pro...
<br />Der häufigste Fehler vieler Website-De...
Definition und Verwendung Mithilfe von @media-Abf...