Was ist Lastenausgleich?Der Lastausgleich wird hauptsächlich durch spezielle Hardwaregeräte oder Softwarealgorithmen erreicht. Der durch Hardwaregeräte erreichte Lastausgleich hat eine gute Wirkung, ist hocheffizient und bietet eine stabile Leistung, die Kosten sind jedoch relativ hoch. Der über Software implementierte Lastausgleich hängt hauptsächlich von der Wahl des Ausgleichsalgorithmus und der Robustheit des Programms ab. Es gibt auch viele Arten von Ausgleichsalgorithmen. Die gängigsten fallen in zwei Kategorien: statische und dynamische Lastausgleichsalgorithmen. Statische Algorithmen sind relativ einfach zu implementieren und können in allgemeinen Netzwerkumgebungen relativ gute Ergebnisse erzielen. Dazu gehören hauptsächlich allgemeine Polling-Algorithmen, verhältnisbasierte gewichtete Polling-Algorithmen und prioritätsbasierte gewichtete Polling-Algorithmen. Dynamische Lastausgleichsalgorithmen sind in komplexeren Netzwerkumgebungen anpassungsfähiger und effektiver. Dazu gehören hauptsächlich der Algorithmus mit der geringsten Verbindungspriorität basierend auf dem Aufgabenvolumen, der Algorithmus mit der schnellsten Reaktionspriorität basierend auf der Leistung, der Vorhersagealgorithmus und der Algorithmus zur dynamischen Leistungszuweisung. Das allgemeine Prinzip der Netzwerklastausgleichstechnologie besteht darin, mithilfe einer bestimmten Verteilungsstrategie die Netzwerklast gleichmäßig auf die einzelnen Betriebseinheiten des Netzwerkclusters zu verteilen, sodass eine einzelne, hochlastige Aufgabe zur parallelen Verarbeitung auf mehrere Einheiten aufgeteilt werden kann oder eine große Menge gleichzeitiger Zugriffe oder Datenverkehr zur separaten Verarbeitung auf mehrere Einheiten aufgeteilt werden kann, wodurch die Wartezeit des Benutzers auf die Antwort verkürzt wird. Konfiguration des Lastenausgleichs des Nginx-ServersDer Nginx-Server implementiert einen statischen, prioritätsbasierten, gewichteten Polling-Algorithmus. Die hauptsächlich verwendeten Konfigurationen sind die Proxy_Pass-Direktive und die Upstream-Direktive. Diese Inhalte sind eigentlich sehr leicht zu verstehen. Der entscheidende Punkt ist, dass die Konfiguration des Nginx-Servers flexibel und vielfältig ist. Wie man bei der Konfiguration des Lastenausgleichs andere Funktionen sinnvoll integriert, um eine Konfigurationslösung zu bilden, die den tatsächlichen Anforderungen gerecht wird. Nachfolgend finden Sie einige grundlegende Beispielausschnitte. Natürlich ist es unmöglich, alle Konfigurationssituationen zu berücksichtigen. Ich hoffe, dass dies als Ausgangspunkt für Diskussionen dienen kann. Gleichzeitig erfordert es auch, dass jeder im eigentlichen Bewerbungsprozess mehr zusammenfasst und sammelt. Punkte, die einer Beachtung in der Konfiguration bedürfen, werden als Kommentar ergänzt. Konfigurationsbeispiel 1: Implementierung einer allgemeinen Round-Robin-Load-Balancing-Richtlinie für alle AnfragenIm folgenden Beispielausschnitt werden die Prioritäten aller Server in der Back-End-Servergruppe auf die Standardgewichtung = 1 konfiguriert, sodass sie Anforderungsaufgaben der Reihe nach entsprechend der allgemeinen Polling-Strategie erhalten. Diese Konfiguration ist die einfachste zur Implementierung des Lastenausgleichs für Nginx-Server. Bei allen Anfragen an www.myweb.name wird die Last innerhalb der Backend-Servergruppe ausgeglichen. Der Beispielcode lautet wie folgt: ... Upstream-Backend #Konfigurieren Sie die Backend-Servergruppe { Server 192.168.1.2:80; Server 192.168.1.3:80; Server 192.168.1.4:80; #Standardgewicht = 1 } Server { hören Sie 80; Servername www.myweb.name; Index Index.html Index.htm; Standort / { Proxy-Passwort http://backend; prox_set_header Host $host; } ... } Konfigurationsbeispiel 2: Implementieren eines gewichteten Round-Robin-Lastausgleichs für alle AnforderungenIm Vergleich zum „Konfigurationsbeispiel 1“ werden in diesem Beispielfragment den Servern in der Back-End-Servergruppe unterschiedliche Prioritätsstufen zugewiesen und der Wert der Gewichtsvariablen ist das „Gewicht“ in der Polling-Strategie. Davon hat 192.168.1.2:80 die höchste Ebene und ist der Server, der die wenigsten Client-Anfragen empfängt und verarbeitet. 192.168.1.4:80 hat die niedrigste Ebene und ist der Server, der die wenigsten Client-Anfragen empfängt und verarbeitet. 192.168.1.3:80 liegt zwischen den beiden oben genannten. Bei allen Anfragen an www.myweb.name wird in der Backend-Servergruppe ein gewichteter Lastenausgleich durchgeführt. Der Beispielcode lautet wie folgt: ... Upstream-Backend #Konfigurieren Sie die Backend-Servergruppe { Server 192.168.1.2:80 Gewicht=5; Server 192.168.1.3:80 Gewicht=2; Server 192.168.1.4:80; #Standardgewicht = 1 } Server { hören Sie 80; Servername www.myweb.name; Index Index.html Index.htm; Standort / { Proxy-Passwort http://backend; prox_set_header Host $host; } ... } Konfigurationsbeispiel 3: Lastenausgleich für bestimmte RessourcenIn diesem Beispielausschnitt richten wir zwei Gruppen von Proxyservern ein, eine mit dem Namen „videobackend“ wird zum Lastenausgleich von Clientanforderungen für Videoressourcen verwendet, und die andere dient zum Lastenausgleich von Clientanforderungen für Feldressourcen. Alle Anfragen an „http://www.mywebname/video/*“ werden in der Videobackend-Servergruppe ausgeglichen, und alle Anfragen an „http://www.mywebname/file/*“ werden in der Filebackend-Servergruppe ausgeglichen. Dieses Beispiel zeigt die Konfiguration zur Implementierung eines allgemeinen Lastenausgleichs. Informationen zur Konfiguration des gewichteten Lastenausgleichs finden Sie unter „Konfigurationsbeispiel 2“. Im Block „location /file/ {......}“ füllen wir die tatsächlichen Informationen des Clients in die Header-Felder „Host“, „X-Real-IP“ und „X-Forwareded-For“ im Anforderungsheader ein, sodass die von der Back-End-Servergruppe empfangene Anforderung die tatsächlichen Informationen des Clients und nicht die Nginx-Serverinformationen enthält. Der Beispielcode lautet wie folgt: ... Upstream-Videobackend #Backend-Servergruppe 1 konfigurieren { Server 192.168.1.2:80; Server 192.168.1.3:80; Server 192.168.1.4:80; } Upstream-Filebackend #Backend-Servergruppe 2 konfigurieren { Server 192.168.1.5:80; Server 192.168.1.6:80; Server 192.168.1.7:80; } Server { hören Sie 80; Servername www.myweb.name; Index Index.html Index.htm; Standort /video/ { proxy_pass http://videobackend; #Backend-Servergruppe 1 verwenden prox_set_header Host $host; ... } Speicherort /Datei/ { proxy_pass http://filebackend; #Backend-Servergruppe 2 verwenden #Behalten Sie die tatsächlichen Informationen des Clients prox_set_header Host $host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; ... } } Konfigurationsbeispiel 4: Lastenausgleich für verschiedene DomänennamenIn diesem Beispielausschnitt richten wir zwei virtuelle Server und zwei Sätze von Backend-Proxyservergruppen ein, um unterschiedliche Domänennamenanforderungen zu empfangen und einen Lastenausgleich für diese Anforderungen durchzuführen. Wenn der Domänenname der Clientanforderung „home.myweb.name“ lautet, empfängt Server Server1 ihn und leitet ihn zum Lastenausgleich an die Homebackend-Servergruppe weiter. Wenn der Domänenname der Clientanforderung „bbs.myweb.name“ lautet, empfängt Server Server2 ihn und leitet ihn zum Lastenausgleich an die BBSbackend-Serverebene weiter. Dadurch wird ein Lastenausgleich für verschiedene Domänennamen erreicht. Es ist zu beachten, dass eine der beiden Backend-Servergruppen, Server 192.168.1.4:80, gemeinsam genutzt wird. Alle Ressourcen unter den beiden Domänennamen müssen auf dem Server bereitgestellt werden, um sicherzustellen, dass bei Clientanforderungen keine Probleme auftreten. Der Beispielcode lautet wie folgt: ... upstream bbsbackend #Backend-Servergruppe 1 konfigurieren { Server 192.168.1.2:80 Gewicht=2; Server 192.168.1.3:80 Gewicht=2; Server 192.168.1.4:80; } Upstream Homebackend #Backend-Servergruppe 2 konfigurieren { Server 192.168.1.4:80; Server 192.168.1.5:80; Server 192.168.1.6:80; } #Starten Sie die Konfiguration von Server 1 Server { hören Sie 80; Servername home.meinweb.name; Index Index.html Index.htm; Standort / { Proxy-Passwort http://homebackend; prox_set_header Host $host; ... } ... } #Starten Sie die Konfiguration von Server 2 Server { hören Sie 80; Servername bbs.myweb.name; Index Index.html Index.htm; Standort / { Proxy-Passwort http://bbsbackend; prox_set_header Host $host; ... } ... } Konfigurationsbeispiel 5: Implementierung des Lastenausgleichs mit URL-UmschreibungSchauen wir uns zunächst den konkreten Quelltext an, der auf Basis von Beispiel 1 modifiziert wurde: ... Upstream-Backend #Konfigurieren Sie die Backend-Servergruppe { Server 192.168.1.2:80; Server 192.168.1.3:80; Server 192.168.1.4:80; #Standardgewicht = 1 } Server { hören Sie 80; Servername www.myweb.name; Index Index.html Index.htm; Speicherort /Datei/ { schreibe ^(/file/.*)/media/(.*)\.*$) $1/mp3/$2.mp3 zuletzt neu; } Standort / { Proxy-Passwort http://backend; prox_set_header Host $host; } ... } Im Vergleich zu „Konfiguration 1“ fügt dieses Beispielfragment die URL-Umschreibfunktion für URIs hinzu, die „/file/“ enthalten. Wenn die vom Client angeforderte URL beispielsweise „http://www.myweb.name/file/downlaod/media/1.mp3“ lautet, verwendet der virtuelle Server zuerst den Block „Standortdatei/{......}“, um sie an die Back-End-Servergruppe weiterzuleiten und so einen Lastenausgleich zu erreichen. Auf diese Weise lässt sich ein Lastenausgleich mit URL-Umschreibfunktion problemlos implementieren. In diesem Konfigurationsschema müssen Sie den Unterschied zwischen dem letzten Tag und dem Unterbrechungstag in der Umschreibanweisung klar verstehen, um den gewünschten Effekt zu erzielen. Die obigen fünf Konfigurationsbeispiele demonstrieren die grundlegenden Methoden zur Implementierung einer Lastausgleichskonfiguration im Nginx-Server unter verschiedenen Umständen. Da die Funktionen des Nginx-Servers inkrementell aufgebaut sind, können wir basierend auf diesen Konfigurationen weiterhin weitere Funktionen hinzufügen, wie etwa Web-Caching, Gzip-Komprimierungstechnologie, Identitätsauthentifizierung, Berechtigungsverwaltung usw. Gleichzeitig können Sie beim Konfigurieren der Servergruppe mit der Upstream-Direktive die Funktionen jeder Direktive voll ausnutzen, um einen Nginx-Server zu konfigurieren, der den Anforderungen entspricht, effizient, stabil und funktionsreich ist. Oben finden Sie Einzelheiten zum Nginx-Lastausgleich und seiner Konfiguration. Weitere Informationen zum Nginx-Lastausgleich finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Schritte der MySQL-Methode zum Bestimmen, ob es sich um eine Teilmenge handelt
>>: CSS verwendet das Autoflow-Attribut, um einen Sitzauswahleffekt zu erzielen
MySQL 8.0.22 Download-, Installations- und Konfig...
Wie unten dargestellt: //Fragen Sie das Jahr und ...
CSS realisiert den Prozessnavigationseffekt. Der ...
1. Linux-Netzwerkkonfiguration Bevor Sie das Netz...
<META http-equiv="Seite eingeben" CON...
Einführung: MySQL-Datenbankwiederherstellung nach...
Inhaltsverzeichnis 1. Vom Benutzer erstelltes Skr...
Inhaltsverzeichnis 1. Vier Konzepte 1. JavaScript...
Der Befehl „Explain“ ist die primäre Möglichkeit,...
Inhaltsverzeichnis 1. beschreibbar: beschreibbar ...
<!--[if IE 6]> Nur IE6 kann erkennen <![e...
Dieser Artikel dokumentiert die vollständige Dein...
Vorwort Wenn wir von Linux-Systemen sprechen, mei...
Inhaltsverzeichnis Was sind flaches und tiefes Kl...
Das Problem mit dem verstümmelten Code ist folgen...