¿Cuáles son las diferencias entre HAProxy y Ngnix en modo proxy inverso?

Respuestas:

5

Actualización 2019:

Ambos son productos estables y maduros. HAProxy está dedicado al equilibrio de carga y es mejor en eso, mientras que nginx es un servidor web que puede actuar como un equilibrador de carga.

Ambos:

  • Soporte HTTPS
  • Soporte websocket
  • Productos estables, maduros y muy eficientes.
  • Puede manejar conexiones de 10k con un mínimo o sin ajuste

HAProxy:

  • Equilibrio de carga TCP, TCP-SSL, HTTP y HTTPS
  • Más flexibilidad en los controles de estado y las condiciones de conmutación por error.
  • Almacenamiento en caché básico (v1.8 - 2017)
  • Formato de registro personalizable, para importar registros de acceso a kibana / splunk / graylog
  • Página de estado detallada, para ver las solicitudes activas y el estado de los servidores
  • Métricas exportables, para integrar con soluciones de monitoreo (grafito / prometeo / datadog)
  • Más orientado al alto rendimiento. Mejor indicado para manejar conexiones de 100k o interfaces de 40 GbE.

Nginx:

  • Equilibrio de carga HTTP y HTTPS (TCP - UDP en edición paga)
  • Más flexibilidad en el almacenamiento en caché
  • Formato de registro personalizable, para importar registros de acceso a kibana / splunk / graylog
  • Sin página de estado (solo edición de pago)
  • Sin métricas exportables (solo edición de pago)
  • Puede servir archivos locales
  • Puede servir aplicaciones FastCGI (no CGI)

HAProxy es un software gratuito, de código totalmente abierto. Ganan dinero vendiendo dispositivos de hardware con HAProxy preinstalado.

Nginx es de núcleo abierto y muchas características solo están disponibles en la edición paga. En particular, carece de una página de estado y métricas de monitoreo que es un gran NO NO para operar un equilibrador de carga.

usuario5994461
fuente
42

HAProxy es realmente solo un equilibrador de carga / proxy inverso. Nginx es un servidor web que también puede funcionar como un proxy inverso.

Aquí hay algunas diferencias:

HAProxy:

  • ¿Proxy TCP y HTTP (SSL agregado desde 1.5-dev12)
  • Más opciones de limitación de velocidad
  • El autor responde preguntas aquí sobre la falla del servidor ;-)

Nginx :

  • Admite SSL directamente
  • También es un servidor de almacenamiento en caché

En Stack Overflow usamos principalmente HAProxy con nginx para la descarga de SSL, por lo que HAProxy es mi recomendación.

Kyle Brandt
fuente
11

Yo uso nginx para frontend HAProxy, pero solo para la terminación SSL.

HAProxy es un equilibrador de carga mucho más ajustable y manejable (en mi experiencia).

También incorporo Varnish para el almacenamiento en caché de objetos estáticos. (como un backend específico de HAProxy)

Consulte esta pregunta de error del servidor para obtener más información. Pedido de nginx / barniz / haproxy

Joel K
fuente
3
Las versiones inestables más recientes (septiembre de 2012) de HAProxy ahora admiten SSL. (eliminando potencialmente mi necesidad de ejecutar nginx)
Joel K
5

Si es necesario solo para equilibrar la carga, el proxy HA es mejor. Pero la combinación de nginix y el proxy HA puede ser más útil, ya que nginix es rápido en proporcionar contenido estático, atenderá todas las solicitudes de datos estáticos y luego enviará todas las solicitudes al proxy HA que sirve como equilibrador de carga y envía la solicitud al servidor web para servir solicitud por equilibrio de carga.

Mitesh
fuente