Jakie są różnice między HAProxy a Ngnix w trybie odwrotnego proxy?

Odpowiedzi:

5

Aktualizacja 2019:

Są to zarówno produkty stabilne, jak i dojrzałe. HAProxy jest dedykowany do równoważenia obciążenia i jest w tym lepszy, podczas gdy nginx to serwer sieciowy, który może działać jako moduł równoważenia obciążenia.

Obie:

  • Obsługa HTTPS
  • Obsługa Websocket
  • Stabilne, dojrzałe i bardzo wydajne produkty
  • Obsługuje połączenia 10k przy minimalnym strojeniu lub bez

HAProxy:

  • Równoważenie obciążenia TCP, TCP-SSL, HTTP i HTTPS
  • Większa elastyczność kontroli stanu i warunków pracy awaryjnej
  • Podstawowe buforowanie (wersja 1.8 - 2017)
  • Konfigurowalny format dziennika, aby zaimportować dzienniki dostępu do kibana / splunk / graylog
  • Szczegółowa strona statusu, aby zobaczyć aktywne żądania i status serwerów
  • Dane eksportowalne w celu integracji z rozwiązaniami monitorującymi (grafit / prometheus / datadog)
  • Bardziej zorientowany na wysoką wydajność. Lepiej wskazany do obsługi połączeń 100 000 lub interfejsów 40 GbE.

Nginx:

  • Równoważenie obciążenia HTTP i HTTPS (TCP - UDP w wersji płatnej)
  • Większa elastyczność buforowania
  • Konfigurowalny format dziennika, aby zaimportować dzienniki dostępu do kibana / splunk / graylog
  • Brak strony statusu (tylko edycja płatna)
  • Brak danych eksportowych (tylko edycja płatna)
  • Może obsługiwać lokalne pliki
  • Może obsługiwać aplikacje FastCGI (nie CGI)

HAProxy to darmowe oprogramowanie, w pełni otwarte oprogramowanie. Zarabiają, sprzedając sprzęt ze wstępnie zainstalowanym HAProxy.

Nginx jest otwarty, a wiele funkcji jest dostępnych tylko w wersji płatnej. W szczególności brakuje strony statusu i wskaźników monitorowania, które są dużym NIE NO do obsługi modułu równoważenia obciążenia.

użytkownik5994461
źródło
42

HAProxy to tak naprawdę tylko moduł równoważenia obciążenia / odwrotne proxy. Nginx to serwer sieciowy, który może również działać jako zwrotny serwer proxy.

Oto kilka różnic:

HAProxy:

  • Czy proxy TCP, jak i HTTP (SSL dodane z 1.5-dev12)
  • Więcej opcji ograniczających stawkę
  • Autor odpowiada tutaj na pytania dotyczące błędu serwera ;-)

Nginx :

  • Obsługuje bezpośrednio SSL
  • Jest także serwerem buforującym

W stosie przepełnienia stosujemy głównie HAProxy z nginx do odciążania SSL, więc HAProxy jest moją rekomendacją.

Kyle Brandt
źródło
11

Używam nginx do nakładania interfejsu HAProxy, ale tylko do zakończenia SSL.

HAProxy jest o wiele bardziej dostrajalnym i zarządzalnym równoważeniem obciążenia (z mojego doświadczenia).

Używam również Lakier do buforowania obiektów statycznych. (jako specyficzny backend HAProxy)

Zobacz to pytanie o awarię serwera, aby uzyskać więcej informacji. Zamawianie nginx / lakier / haproxy

Joel K.
źródło
3
Najnowsze (niestabilne) wersje HAProxy (wrzesień 2012 r.) Obsługują teraz SSL. (potencjalnie usuwając moją potrzebę uruchamiania nginx)
Joel K
5

Jeśli jest to potrzebne tylko dla równoważenia obciążenia, proxy HA jest lepsze. Ale połączenie zarówno proxy nginix, jak i HA może być bardziej użyteczne, ponieważ nginix jest szybki w dostarczaniu treści statycznych, będzie obsługiwał wszystkie żądania dotyczące danych statycznych, a następnie wysyła wszystkie żądania do proxy HA, które służą jako moduł równoważenia obciążenia i wysyłają żądanie do serwera WWW w celu obsługi żądanie równoważenia obciążenia.

Mitesh
źródło