Erläuterung zum Lastenausgleich und Reverseproxy von Nginx

Erläuterung zum Lastenausgleich und Reverseproxy von Nginx

Lastenausgleich

Unter Lastverteilung versteht man einen Vorgang, bei dem mehrere Server symmetrisch zu einem Server-Set zusammengefasst werden. Jeder Server hat dabei den gleichen Status und kann eigenständig und ohne die Hilfe anderer Server seine Dienste bereitstellen. Durch eine bestimmte Lastverteilungstechnologie werden die von außen gesendeten Anforderungen gleichmäßig auf einen Server in der symmetrischen Struktur verteilt, und der Server, der die Anforderung empfängt, antwortet unabhängig auf die Anforderung des Benutzers. Durch Lastenausgleich können Serviceanforderungen gleichmäßig auf das Server-Array verteilt werden, Daten schnell abgerufen und das Problem einer großen Anzahl gleichzeitiger Zugriffsdienste gelöst werden.

Klassifizierung des Lastenausgleichs

1. DNS-Lastausgleich

Konfigurieren Sie auf dem DNS-Server mehrere A-Einträge. Die Server, die diesen A-Einträgen entsprechen, bilden einen Cluster.

Geben Sie hier die Bildbeschreibung ein

Vorteil :

  • 1. Einfach zu bedienen: Die Lastverteilung wird vom DNS-Server übernommen, wodurch die Wartung des Lastverteilungsservers entfällt
  • 2. Leistungsverbesserung: Es kann eine adressbasierte Domänennamenauflösung unterstützen, die in die dem Benutzer am nächsten gelegene Serveradresse aufgelöst werden kann, was den Zugriff beschleunigen und die Leistung verbessern kann.

Mangel:

  • 1. Schlechte Verfügbarkeit: Die DNS-Auflösung erfolgt auf mehreren Ebenen. Nach dem Hinzufügen/Ändern von DNS dauert die Auflösung lange. Während des Auflösungsprozesses können Benutzer nicht auf die Website zugreifen.
  • 2. Geringe Skalierbarkeit: Die Kontrolle über den DNS-Lastausgleich liegt in den Händen des Domänennamenanbieters und es sind keine weiteren Verbesserungen und Erweiterungen möglich.
  • 3. Schlechte Wartbarkeit: Der aktuelle Betriebszustand des Servers kann nicht wiedergegeben werden; es werden nur wenige Algorithmen unterstützt; die Unterschiede zwischen Servern können nicht erkannt werden (die Belastung kann nicht anhand des System- und Serverzustands beurteilt werden).

2. IP-Lastausgleich

Auf der Netzwerkebene wird der Lastausgleich durch Ändern der Anforderungszieladresse durchgeführt. Nachdem das vom Benutzer angeforderte Datenpaket beim Lastausgleichsserver angekommen ist, erhält der Lastausgleichsserver das Netzwerkdatenpaket im Kernelprozess des Betriebssystems, erhält basierend auf dem Lastausgleichsalgorithmus eine echte Serveradresse und ändert dann die angeforderte Zieladresse in die erhaltene echte IP-Adresse.
Nachdem der reale Server die Verarbeitung abgeschlossen hat, kehrt das entsprechende Datenpaket zum Lastausgleichsserver zurück. Der Lastausgleichsserver ändert dann die Quelladresse des Datenpakets in seine eigene IP-Adresse und sendet es an den Browser des Benutzers.

Geben Sie hier die Bildbeschreibung ein

IP-Lastausgleich: Der reale physische Server kehrt zum Lastausgleichsserver zurück. Es gibt zwei Möglichkeiten:

  • (1) Der Lastausgleichsserver ändert die Quelladresse, während er die Ziel-IP-Adresse ändert. Legen Sie die Quelladresse des Datenpakets auf seiner eigenen Festplatte fest. Dies wird als Source Address Translation (SNAT) bezeichnet.
  • (2) Der Load Balancing Server dient gleichzeitig als Gateway-Server des realen physischen Serverclusters.

Vorteil :

  • (1) Die Datenverteilung wird im Kernelprozess abgeschlossen. Dadurch ist die Leistung besser als bei der Verteilung auf der Anwendungsebene.

Manko :

  • (1) Alle Anforderungsantworten müssen über den Lastausgleichsserver laufen, und der maximale Durchsatz des Clusters wird durch die Bandbreite der Netzwerkkarte des Lastausgleichsservers begrenzt.

3. Lastausgleich auf Verbindungsebene

Ändern Sie die MAC-Adresse auf der Datenverbindungsschicht des Kommunikationsprotokolls, um einen Lastausgleich durchzuführen.
Bei der Datenverteilung wird die IP-Adresse nicht geändert. Dies bedeutet, dass die MAC-Adresse des Ziels geändert und die virtuellen IP-Adressen aller Maschinen im realen physischen Servercluster so konfiguriert werden, dass sie mit der IP-Adresse des Lastausgleichsservers übereinstimmen. Auf diese Weise wird der Zweck der Datenverteilung erreicht, ohne die Quelladresse und die Zieladresse des Datenpakets zu ändern.

Die tatsächliche IP des Verarbeitungsservers stimmt mit der Ziel-IP der Datenanforderung überein und muss nicht vom Lastausgleichsserver übersetzt werden. Das Antwortdatenpaket kann direkt an den Browser des Benutzers zurückgegeben werden, wodurch verhindert wird, dass die Bandbreite der Netzwerkkarte des Lastausgleichsservers zum Engpass wird. Wird auch als Direct-Routing-Modus (DR-Modus) bezeichnet. Wie unten dargestellt:

Geben Sie hier die Bildbeschreibung ein

Vorteile : gute Leistung
Nachteile : Komplexe Konfiguration

4. Hybrider Lastenausgleich

Aufgrund der Unterschiede bei der Hardwareausstattung, Skalierung und den von mehreren Serverclustern bereitgestellten Diensten können Sie für jeden Servercluster die am besten geeignete Methode zum Lastenausgleich verwenden und diese dann erneut auf so viele Servercluster verteilen oder gruppieren, dass der Außenwelt als Ganzes Dienste bereitgestellt werden (mehrere Servercluster werden als neuer Servercluster behandelt), um eine optimale Leistung zu erzielen.

Methode 1, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Der obige Modus eignet sich für Szenarien mit dynamischer und statischer Trennung. Der Reverse-Proxy-Server (Cluster) kann die Rolle des Cachings und der dynamischen Anforderungsverteilung übernehmen. Wenn statische Ressourcen im Proxy-Server zwischengespeichert werden, werden sie direkt an den Browser zurückgegeben. Handelt es sich um eine dynamische Seite, wird ein anschließender Anwendungslastenausgleich angefordert.
Methode 2, wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Die oben genannten Szenarien eignen sich für dynamische Anforderungsszenarien.

Lastausgleichsalgorithmus

Zu den üblichen Lastausgleichsalgorithmen zählen Polling, Zufallsprinzip, Least Link, Quelladress-Hashing, Gewichtung usw.

1 Umfrage

Verteilen Sie alle Anfragen nacheinander an alle Server. Dies eignet sich für Szenarien mit derselben Serverhardware.

Vorteile : Die Anzahl der Serveranfragen ist gleich;

Nachteile : Der Serverdruck ist unterschiedlich, was für Situationen mit unterschiedlichen Serverkonfigurationen nicht geeignet ist.

2 Zufällig

Anfragen werden den Servern nach dem Zufallsprinzip zugewiesen.
Vorteile : Einfach zu bedienen;

Nachteile : Nicht geeignet für Szenarien mit unterschiedlichen Maschinenkonfigurationen;

3 Mindestanzahl an Links

Leitet Anfragen an den Server mit den wenigsten Verbindungen weiter (den Server, der aktuell die wenigsten Anfragen verarbeitet).

Vorteile : Dynamische Zuordnung basierend auf dem aktuellen Anforderungsverarbeitungsstatus des Servers;

Nachteile : Der Algorithmus ist relativ komplex zu implementieren und erfordert eine Überwachung der Anzahl der Serveranforderungsverbindungen;

4 Hash (Quelladressen-Hash)

Führen Sie eine Hash-Berechnung basierend auf der IP-Adresse durch, um die IP-Adresse zu erhalten.

Vorteile : Leiten Sie Anfragen von derselben IP-Adresse während derselben Sitzung an denselben Server weiter; erreichen Sie Sitzungsstabilität.

Nachteile : Wenn der Zielserver ausfällt, geht die Sitzung verloren;

5 Gewichtet

Die Serverlastverteilung erfolgt gewichtet auf Grundlage von Polling, Zufallsprinzip, Least Link-, Hash- und anderen Algorithmen.

Vorteile : Passen Sie die Anzahl der Anfragen an den Weiterleitungsserver entsprechend der Gewichtung an;

Nachteile : relativ kompliziert in der Handhabung;

Reverse-Proxy

Reverse-Proxy bedeutet, dass der Proxy-Server Verbindungsanfragen im Internet akzeptiert, diese Anfragen dann an den Server im internen Netzwerk weiterleitet und die auf dem Server erhaltenen Ergebnisse an den Client zurückgibt, der die Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheint der Proxy-Server der Außenwelt als Server.

Dies ist das Ende dieses Artikels über Nginx-Lastausgleich und Reverse-Proxy. Weitere relevante Inhalte zu Nginx-Lastausgleich und Reverse-Proxy finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Nginx-Reverseproxy und Lastausgleichspraxis
  • Eine kurze Diskussion über den siebenschichtigen Reverse-Proxy und Lastenausgleich von Nginx
  • Detaillierte Erläuterung der Nginx-Lastverteilung und der Reverse-Proxy-Konfiguration und -Optimierung
  • Beispiel für die Verwendung von Nginx als Reverse-Proxy zum Erreichen des Lastenausgleichs
  • Verständnis des Nginx-Reverse-Proxy- und Lastenausgleichskonzepts und Modulnutzung

<<:  Detaillierte Erklärung zur Verwendung von Vue-Mixin

>>:  Schreibreihenfolge und Namenskonventionen sowie Vorsichtsmaßnahmen im CSS-Stil

Artikel empfehlen

Eine Zeile CSS-Code zur Integration von Avatar und Nationalflagge

Es ist Nationalfeiertag und jeder kann es kaum er...

Detaillierte Erklärung der Tastaturereignisse von Vue

Inhaltsverzeichnis Allgemeine Schlüsselaliase Sch...

CSS Clear Float Clear:Both Beispielcode

Heute werde ich mit Ihnen über das Löschen von Fl...

So leiten Sie eine URL mit Nginx Rewrite um

Ich muss in letzter Zeit bei der Arbeit oft die N...

Einfache Zusammenfassung der Methoden zur Leistungsoptimierung von Tomcat

Tomcat selbst optimieren Tomcat-Speicheroptimieru...

jQuery ermöglicht nahtloses Scrollen von Tabellen

In diesem Artikelbeispiel wird der spezifische Co...

HTML Einführungstutorial HTML Tag Symbole schnell beherrschen

Randbemerkung <br />Wenn Sie nichts über HTM...

Detaillierter Prozess der SpringBoot-Integration von Docker

Inhaltsverzeichnis 1. Demo-Projekt 1.1 Schnittste...

Mehrere wichtige MySQL-Variablen

Es gibt viele MySQL-Variablen, von denen einige u...