Inhaltsverzeichnis
1. LVS-Weiterleitungsmodus
2. Nginx-Lademodus
3. Haproxy
4. Zusammenfassung
Heim Backend-Entwicklung PHP-Tutorial Zusammenfassung der Transitmodi lvs, nginx und haproxy

Zusammenfassung der Transitmodi lvs, nginx und haproxy

Aug 08, 2016 am 09:21 AM
hash nbsp nginx server

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.

Zusammenfassung der Transitmodi lvs, nginx und haproxy

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:

  1. 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.
  2. 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:
    1. Upstream-Backend {
    2. Server 192.168.0,14Gewicht=10;
    3. Server 192.168 .0,15Gewicht=10;
    4. }
  3. 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:
    1. Upstream-Backend {
    2. ip_hash;
    3. Server 192.168.0,14:88;
    4. Server 192.168.0,15:80;
    5. }
  4. fair: Weisen Sie Anfragen entsprechend der Antwortzeit des Backend-Servers zu, und diejenigen mit kurzen Antwortzeiten werden zuerst zugewiesen .
    1. Upstream-Backend {
    2. Server Server1;
    3. server server2;
    4. fair;
    5. }
  5. 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:
    1. Upstream-Backend {
    2. Server Squid1:3128;
    3. Server Squid2:3128;
    4. hash $request_uri;
    5. hash_method crc32;
    6. }

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.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Der Zugriff auf WordPress -Site -Datei ist eingeschränkt: Warum ist meine .txt -Datei nicht über den Domänennamen zugegriffen? Apr 01, 2025 pm 03:00 PM

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: � ...

Wie kann ich Php5.6 und PHP7 durch die NGINX -Konfiguration auf demselben Server koexistieren? Wie kann ich Php5.6 und PHP7 durch die NGINX -Konfiguration auf demselben Server koexistieren? Apr 01, 2025 pm 03:15 PM

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 ...

So führen Sie das H5 -Projekt aus So führen Sie das H5 -Projekt aus Apr 06, 2025 pm 12:21 PM

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.

Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Wie kann man Node.js oder Python -Dienste in Lampenarchitektur effizient integrieren? Apr 01, 2025 pm 02:48 PM

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 ...

Gitee Pages statische Website -Bereitstellung fehlgeschlagen: Wie können Sie einzelne Dateien 404 Fehler beheben und beheben? Gitee Pages statische Website -Bereitstellung fehlgeschlagen: Wie können Sie einzelne Dateien 404 Fehler beheben und beheben? Apr 04, 2025 pm 11:54 PM

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? Wie teile ich dieselbe Seite auf der PC und auf der mobilen Seite und behandeln Sie Cache -Probleme? Apr 01, 2025 pm 01:57 PM

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 ...

Was ist der Grund für die Umleitung von 404 Fehlern nach dem Anmelden bei Selen? Wie löst ich es? Was ist der Grund für die Umleitung von 404 Fehlern nach dem Anmelden bei Selen? Wie löst ich es? Apr 01, 2025 pm 10:54 PM

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. � ...

Wie kann ich mehrere Dienste in DockerFile effizient starten? Wie kann ich mehrere Dienste in DockerFile effizient starten? Apr 01, 2025 pm 02:15 PM

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

See all articles