Was sind die Unterschiede zwischen HAProxy und Ngnix im Reverse-Proxy-Modus?

Antworten:

5

Update 2019:

Sie sind sowohl stabile als auch ausgereifte Produkte. HAProxy widmet sich dem Load Balancing und ist besser darin, wohingegen nginx ein Webserver ist, der als Load Balancer fungieren kann.

Beide:

  • HTTPS-Unterstützung
  • Websocket-Unterstützung
  • Stabile, ausgereifte und sehr effiziente Produkte
  • Kann 10k-Verbindungen mit minimaler oder keiner Abstimmung verarbeiten

HAProxy:

  • TCP-, TCP-SSL-, HTTP- und HTTPS-Lastausgleich
  • Mehr Flexibilität bei Integritätsprüfungen und Failover-Bedingungen
  • Grundlegendes Caching (v1.8 - 2017)
  • Anpassbares Protokollformat, um Zugriffsprotokolle nach kibana / splunk / graylog zu importieren
  • Detaillierte Statusseite, um die aktiven Anforderungen und den Serverstatus anzuzeigen
  • Exportierbare Metriken zur Integration in Überwachungslösungen (Graphit / Prometheus / Datadog)
  • Mehr leistungsorientiert. Besser geeignet für 100k-Verbindungen oder 40 GbE-Schnittstellen.

Nginx:

  • HTTP- und HTTPS-Lastausgleich (TCP - UDP in kostenpflichtiger Version)
  • Mehr Flexibilität beim Caching
  • Anpassbares Protokollformat, um Zugriffsprotokolle nach kibana / splunk / graylog zu importieren
  • Keine Statusseite (nur kostenpflichtige Ausgabe)
  • Keine exportierbaren Metriken (nur kostenpflichtige Ausgabe)
  • Kann lokale Dateien bedienen
  • Kann FastCGI-Anwendungen bedienen (nicht CGI)

HAProxy ist eine freie Software, vollständig Open Source. Sie verdienen Geld, indem sie Hardware-Appliances mit vorinstalliertem HAProxy verkaufen.

Nginx ist Open Core und viele Funktionen sind nur in der kostenpflichtigen Version verfügbar. Es fehlen insbesondere eine Statusseite und Überwachungskennzahlen , die für den Betrieb eines Load Balancers von großer Bedeutung sind.

user5994461
quelle
42

HAProxy ist eigentlich nur ein Load Balancer / Reverse Proxy. Nginx ist ein Webserver, der auch als Reverse Proxy fungieren kann.

Hier sind einige Unterschiede:

HAProxy:

  • Unterstützt sowohl TCP als auch HTTP-Proxy (SSL von 1.5-dev12 hinzugefügt)
  • Mehr Möglichkeiten zur Ratenbegrenzung
  • Der Autor beantwortet hier Fragen zu Server Fault ;-)

Nginx :

  • Unterstützt SSL direkt
  • Ist auch ein Caching-Server

Bei Stack Overflow verwenden wir hauptsächlich HAProxy mit Nginx für das SSL-Offloading, daher ist HAProxy meine Empfehlung.

Kyle Brandt
quelle
11

Ich verwende Nginx für das Frontend von HAProxy, aber nur für die SSL-Kündigung.

HAProxy ist meiner Erfahrung nach ein viel besser einstellbarer und verwaltbarer Load Balancer.

Ich verwende auch Lack für das Zwischenspeichern statischer Objekte. (als spezifisches Backend von HAProxy)

Weitere Informationen finden Sie in dieser Frage zum Serverfehler. Bestellung von Nginx / Lack / Haproxy

Joel K
quelle
3
Die neuesten (September 2012) instabilen Builds von HAProxy unterstützen jetzt SSL. (Entfernen möglicherweise meine Notwendigkeit, Nginx auszuführen)
Joel K
5

Wenn es nur für den Lastausgleich benötigt wird, ist der HA-Proxy besser. Das Kombinieren von Nginix und HA-Proxy kann jedoch nützlicher sein, da Nginix schnell statische Inhalte bereitstellt, alle Anfragen nach statischen Daten bearbeitet und dann alle Anfragen an HA-Proxy sendet, die als Lastausgleich dienen, und Anfragen an den Webserver sendet, um zu dienen Anforderung durch Lastausgleich.

Mitesh
quelle