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.
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.
Nginx verfügt über fünf Ladealgorithmusmodi, nämlich: Polling, Weight (Gewicht), ip_hash, fair, url_hash. Erklären Sie nun nacheinander:
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:
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.
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.