Zusammenfassung der Transitmodi lvs, nginx und haproxy
lvs, nginx und haproxy sind die drei gängigsten Hochverfügbarkeits-Lastausgleichssoftware. Da lvs und haproxy in der Live-Netzwerkumgebung des aktuellen Unternehmens nicht verwendet werden, haben sie sie jetzt fast vergessen, obwohl sie sie zuvor kurz verstanden und erstellt haben. Was den Nginx-Lastausgleich betrifft, muss das Unternehmen dies nur tun Einmal konfiguriert Die Dateien sind alle Strg+C, Strg+V, und ich habe die theoretischen Dinge zum Weiterleiten fast vergessen. Die einzigen Wörter, die mir jetzt vage in den Sinn kommen, sind upstream, dr und ip_hash. Jetzt werden wir die Weiterleitungsmethoden der drei zusammenfassen.
1. LVS-Weiterleitungsmodus
LVS ist eine leistungsstarke Software, die auf der vierten Ebene arbeitet und von Dr. Zhang Wensong geschrieben wurde. Im Gegensatz zu den beiden letztgenannten unterstützt es keine siebenschichtige Weiterleitung, ist aber gerade aufgrund seiner Einfachheit am stabilsten. Es gibt drei IP-Lastausgleichstechnologien: VS/NAT (Virtual Server via Network Address Translation), VS/TUN (Virtual Server via IP Tunneling) und VS/DR (Direct Routing). Der spezifische Vergleich zwischen den drei ist in der Tabelle dargestellt unten.
2. Nginx-Lademodus
Nginx verfügt über fünf Ladealgorithmusmodi, nämlich: Polling, Weight (Gewicht), ip_hash, fair, url_hash. Erklären Sie nun nacheinander:
- Abfrage (Standard): Jede Anfrage wird nacheinander in chronologischer Reihenfolge verschiedenen Back-End-Servern zugewiesen. Wenn der Back-End-Server ausfällt, kann dies automatisch der Fall sein beseitigt.
- Gewicht: Gibt die Abfragewahrscheinlichkeit an. Das Gewicht ist proportional zum Zugriffsverhältnis und wird verwendet, wenn die Leistung des Back-End-Servers ungleichmäßig ist. Konfiguriert als:
- Upstream-Backend {
- Server 192.168.0,14Gewicht=10;
- Server 192.168 .0,15Gewicht=10;
- }
- ip_hash: Jede Anfrage wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass jeder Besucher festen Zugriff auf einen Back-End-Server hat. was das Sitzungsproblem lösen kann. Konfiguriert als:
- Upstream-Backend {
- ip_hash;
- Server 192.168.0,14:88;
- Server 192.168.0,15:80;
- }
- fair: Weisen Sie Anfragen entsprechend der Antwortzeit des Backend-Servers zu, und diejenigen mit kurzen Antwortzeiten werden zuerst zugewiesen .
- Upstream-Backend {
- Server Server1;
- server server2;
- fair;
- }
- url_hash: Verteilen Sie Anforderungen entsprechend dem Hash-Ergebnis der aufgerufenen URL, sodass jede URL an denselben Back-End-Server weitergeleitet wird. Dies ist effektiver, wenn der Back-End-Server zwischengespeichert ist. Konfiguration wie:
- Upstream-Backend {
- Server Squid1:3128;
- Server Squid2:3128;
- hash $request_uri;
- hash_method crc32;
- }
Hinweis: Im fünften Modus müssen Sie darauf achten, Hash-Anweisungen im Upstream hinzuzufügen. Andere Parameter wie „weight“ können nicht in die Server-Anweisung geschrieben werden .
Die Parameter, denen der Server häufig folgt, lauten wie folgt:
- down bedeutet, dass der vorherige Server vorübergehend nicht an der Last teilnimmt
- Gewicht ist standardmäßig 1. Je größer das Gewicht, desto größer das Gewicht der Ladung.
- max_fails: Die Anzahl der zulässigen Anforderungsfehler beträgt standardmäßig 1. Wenn die maximale Anzahl überschritten wird, wird der vom Modul „proxy_next_upstream“ definierte Fehler zurückgegeben
- fail_timeout:max_fails Die Zeit zum Anhalten nach einem Fehler.
- Sicherung: Wenn alle anderen Nicht-Backup-Maschinen ausgefallen oder ausgelastet sind, fordern Sie die Backup-Maschine an. Daher wird diese Maschine den geringsten Druck haben.
3. Haproxy
Haproxy hat mit acht Typen die meisten Auslastungsalgorithmen und verfügt daher über die meisten Anwendungsszenarien und die flexibelste Konfiguration 8 Algorithmen sind:
①roundrobin, was einfache Abfrage bedeutet, die grundsätzlich für den Lastausgleich verfügbar ist;
②static-rr, was bedeutet, dass es auf dem Gewicht basiert, und dem Gewichtsalgorithmus von Nginx ähnlich;
③leastconn bedeutet, dass die am wenigsten verbundene Person zuerst verarbeitet wird, ein bisschen ähnlich wie bei Nginx, aber fair basiert auf der Antwortzeit.
④source bedeutet, dass dies auf der IP der Anforderungsquelle basiert Das gleiche wie der IP_hash von Nginx. Wir verwenden ihn als Methode zur Lösung des Sitzungsproblems. Es wird empfohlen, auf
⑤ri zu achten, was bedeutet, dass er dem URL_hash von Nginx ähnelt ;
⑥rl_param, was bedeutet, dass basierend auf dem angeforderten URI-Parameter „balance url_param“ ein URL-Parametername erforderlich ist; HTTP-Anfrageheader;
⑧rdp-cookie(name) bedeutet, dass jede TCP-Anfrage basierend auf cookie(name) gesperrt und gehasht wird.
4. Zusammenfassung
Spezifische tatsächliche Netzwerkanwendungen können die beste Lademethode basierend auf der tatsächlichen Situation des Objekts auswählen. Von den dreien weist lvs die beste Stabilität und die geringste Konfigurierbarkeit auf. Nginx ist am stärksten beim regelmäßigen Abgleich von Domänennamen und Verzeichnisstrukturen. Gleichzeitig ist es weniger vom Netzwerk abhängig, aber seine Leistung ist etwas schlechter als bei lvs haproxy unterstützt virtuelle Hosts, insbesondere im Hinblick auf die Sitzungsaufbewahrung: IP-Identifikation (Quelle), Cookie-Identifikation und Sitzungsidentifikation. Diese Software wird auch häufig verwendet HA-Lösungen.
Oben wurde eine Zusammenfassung der Übertragungsmodi von lvs, nginx und haproxy vorgestellt, einschließlich relevanter Inhalte. Ich hoffe, dass sie für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Fehlerbehebung Der Grund, warum auf die TXT -Datei in letzter Zeit nicht zugegriffen werden kann. Einige Benutzer haben ein Problem beim Konfigurieren des MINI -Programms Business Domain Name: � ...

Das gleichzeitige Ausführen mehrerer PHP -Versionen im selben System ist eine häufige Anforderung, insbesondere wenn verschiedene Projekte von verschiedenen Versionen von PHP abhängen. Wie man auf demselben ...

Ausführen des H5 -Projekts erfordert die folgenden Schritte: Installation der erforderlichen Tools wie Webserver, Node.js, Entwicklungstools usw. Erstellen Sie eine Entwicklungsumgebung, erstellen Sie Projektordner, initialisieren Sie Projekte und schreiben Sie Code. Starten Sie den Entwicklungsserver und führen Sie den Befehl mit der Befehlszeile aus. Vorschau des Projekts in Ihrem Browser und geben Sie die Entwicklungsserver -URL ein. Veröffentlichen Sie Projekte, optimieren Sie Code, stellen Sie Projekte bereit und richten Sie die Webserverkonfiguration ein.

Viele Website -Entwickler stehen vor dem Problem der Integration von Node.js oder Python Services unter der Lampenarchitektur: Die vorhandene Lampe (Linux Apache MySQL PHP) Architekturwebsite benötigt ...

GitePages statische Website -Bereitstellung fehlgeschlagen: 404 Fehlerbehebung und Auflösung bei der Verwendung von Gitee ...

Wie teile ich dieselbe Seite auf der PC und auf der mobilen Seite und behandeln Sie Cache -Probleme? In der nginx -PHP -Umgebung MySQL, die mit dem Baota -Hintergrund erstellt wurde, wie man die PC -Seite und ...

Lösung zum Umleiten von 404 -Fehlern nach der Simulationsanmeldung Bei der Verwendung von Selen für die Simulationsanmeldung stoßen wir häufig auf schwierige Probleme. � ...

Über die effiziente Verwendung von CMD -Befehlen in Dockerfile viele neue Docker -Benutzer verwenden CMD ...
