Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Der Unterschied zwischen Nginx und Haproxy

Der Unterschied zwischen Nginx und Haproxy

(*-*)浩
(*-*)浩Original
2019-06-04 17:07:596216Durchsuche

Für Soft Loads wissen wir alle, dass zu den Mainstream-Lösungen LVS, Haproxy und Nginx gehören! Wie wählen wir also zwischen Haproxy und Nginx? Bevor ich diese Frage beantworte, möchte ich anhand meiner persönlichen Erfahrung über ihre Eigenschaften sprechen!

Der Unterschied zwischen Nginx und Haproxy

Funktionen von Haproxy

Unterstützt TCP- und HTTP-Protokolle und arbeitet auf Netzwerkschicht 4 und Schicht 7

Unterstützt Sitzungsfreigabe und Cookie-Anleitung

Unterstützt die URL-Zustandserkennung

Unterstützt 8 Lastausgleichsstrategien

Unterstützt Heartbeat-Erkennung

Nginx-Funktionen

Unterstützt das HTTP-Protokoll, arbeitet auf Netzwerkschicht 7

Unterstützt die Erkennung des Portzustands

Unterstützt leistungsstarke reguläre Matching-Regeln

Unterstützt das WebSocket-Protokoll

Unterstützung für HTTP-Cache

Hinweis:

Beim HTTP-Protokoll ist die Verarbeitungseffizienz von Haproxy höher als bei Nginx. Wenn keine besonderen Anforderungen oder allgemeinen Szenarien vorliegen, wird daher empfohlen, Haproxy zum Laden des HTTP-Protokolls zu verwenden! Wenn es sich jedoch um das Web handelt, wird die Verwendung von Nginx empfohlen! Kurz gesagt, jeder kann basierend auf den Merkmalen seines jeweiligen Nutzungsszenarios eine vernünftige Wahl treffen!

Das letzte Mal hat mich jemand gefragt: Kann die Anzahl der Verbindungen von Nginx oder Haproxy den „Fluch“ von „65535“ durchbrechen? Tatsächlich hat jeder solche Fragen, weil er das Funktionsprinzip von Nginx oder Haproxy nicht versteht!

Im Folgenden wird der Linux-Server als Beispiel genommen, um die theoretische maximale Anzahl von Verbindungen zwischen den beiden zu erläutern:

Theoretische maximale Anzahl von Verbindungen für Nginx unter Linux

Richtiger Reverse-Proxy: Maximale Anzahl von Verbindungen = work_processes * worker_connections
Reverse-Proxy: Maximale Anzahl von Verbindungen = work_processes * worker_connections / 4
Hinweis: worker_connections bezieht sich auf die maximale Anzahl von Verbindungen, die ein einzelner Prozess kann Gehen Sie davon aus, dass Ihr Server 8 Kerne hat:
65535 (kann angepasst werden, aber die maximale Anzahl von Dateideskriptoren kann nicht überschritten werden, da 1 Verbindung der Verwendung von 1 Dateideskriptor entspricht)

Maximum Verbindungen in den beiden oben genannten Fällen. Die Zahlen (theoretische Werte) sind: 8 * 65535 und 8 * 65535 /4

Theoretische maximale Anzahl von Verbindungen für Haproxy unter Linux

Maximale Anzahl von Verbindungen = maxconn( global | defaults | listen )

Weitere technische Artikel zu Nginx finden Sie in der Spalte Nginx-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Nginx und Haproxy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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