Guía Esencial

Navegue en las secciones

BACKGROUND IMAGE: iSTOCK/GETTY IMAGES

Este contenido es parte de Guía Esencial: Guía esencial: Lo básico sobre el código abierto

Sopese los pros y los contras de tres opciones de equilibrio de cargas de Linux

Nginx, HAProxy y Linux Virtual Server son tres diferentes equilibradores de carga de Linux a considerar para solicitudes de alto tráfico multiservidor, en el centro de datos.

Cuando ejecutan varios servidores para manejar una enorme carga de solicitudes entrantes, usted puede beneficiarse de utilizar un equilibrador de carga. Los proveedores proporcionan equilibradores de carga como un dispositivo de hardware, pero también están disponibles de forma gratuita como software de equilibrio de cargas de Linux.

Un equilibrador de carga aumenta el tiempo de respuesta de los servidores back-end de alto tráfico. Normalmente, las organizaciones utilizan un equilibrador de carga como el extremo frontal de una aplicación o carga de trabajo en varios servidores que se ejecutan como el back-end. En teoría, el equilibrio de carga podría ocurrir para cualquier tipo de servicio, pero en la práctica, normalmente beneficia las operaciones en los servidores HTTP y HTTPS.

Los equilibradores de carga introducen un único punto de fallo, pero al usarlos en una configuración de alta disponibilidad (HA) se asegura que, si el equilibrador de carga cae, se iniciará de nuevo. El equilibrador de carga HA puede ser organizado por un producto HA externo, tal como el genérico Pacemaker HA basado en Linux. Pacemaker monitoreará el equilibrio de cargas consultando su disponibilidad de forma regular. Si cae, se iniciará de nuevo.

Opciones de equilibradores de carga de Linux

Tres opciones comunes de equilibrio de cargas de Linux son Nginx, HAProxy y Linux Virtual Server. Cada uno proporciona servicios de equilibrio de cargas y se ejecutan en la parte superior de Linux. Las diferencias entre ellos pueden explicarse teniendo en mente el modelo de interconexión de sistemas abiertos (OSI).

El modelo OSI define la comunicación de red en diferentes capas: cuanto más alta sea la capa, más específica es sobre el tipo de protocolo utilizado. Un equilibrador de carga que trabaja en una capa OSI inferior es más genérico porque es agnóstico en cuanto a protocolos, y es más rápido, debido a la sobrecarga de paquetes más pequeños. Un equilibrador de carga que funciona en una capa superior de OSI puede ser mucho más específico, ofreciendo así más funciones. Pero debido a eso, también será más lento.

El equilibrador de carga Linux Virtual Server funciona en la capa 4 de OSI, por lo que se ve en las conexiones de una manera genérica y se ocupa de diferentes tipos de tráfico. HAProxy y Nginx proporcionan servicios de equilibrio de carga basados ​​en HTTP en la capa 7 de OSI. Eso significa que son excelentes opciones para mejorar los tiempos de respuesta HTTP, pero tendrás dificultades para equilibrar la carga del tráfico hacia otros protocolos, como Simple Mail Transfer Protocol, el protocolo de transferencia de archivos (FTP) o Secure Shell. Sin embargo, HAProxy soporta funciones de equilibrio de carga para bases de datos MySQL/MariaDB, y Nginx también ofrece soporte para correo electrónico.

Eso no significa que siempre estará mejor utilizando HAProxy o Nginx si necesita balancear las cargas de paquetes HTTP. Cuando el equilibrador de carga funciona a un nivel superior del modelo OSI, también necesita hacer más trabajo e inspeccionar los paquetes hasta el encabezado del paquete HTTP.

Otra diferencia es que los equilibradores de carga de capa 7 operan en el espacio de usuario, lo que lo hace más personalizable. Sin embargo, el equilibrador de carga Linux Virtual Server funciona en el espacio del kernel, lo que lo hace más rápido.

¿HAProxy o Nginx?

Como servidor web, Nginx está por delante de Apache cuando se trata de manejar entornos de alto tráfico; esto mismo es cierto para Nginx como un equilibrador de carga de Linux. Por lo tanto, si espera una alta carga de trabajo en HTTP, utilice Nginx en lugar de HAProxy.

Pero, Nginx no es siempre la mejor opción. El problema con Nginx es que no ha sido desarrollado para ser un equilibrador de cargas. Nginx es un servidor web rápido, y también un proxy y equilibrador de cargas. Con algunos elementos, HAProxy tiene características más desarrolladas para acomodar su funcionamiento como equilibrador de cargas. Por ejemplo, un algoritmo se utiliza para decidir qué servidor recibe los paquetes que se envían. HAProxy tiene al menos ocho algoritmos diferentes, incluyendo algoritmos comunes como round-robin, round-robin estático y menos conexión. Nginx ofrece sólo tres algoritmos diferentes y por eso, no es tan flexible.

Recomendaciones finales

Si desea un equilibrador de cargas de Linux multiprotocolo que funcione rápidamente y se implemente en el kernel de Linux, estarán interesados en Linux Virtual Server. Si necesita equilibrio de cargas centrado en HTTP y un conjunto limitado de otros servicios, necesitará un equilibrador de cargas de capa 7.

De estos equilibradores de carga de capa 7, Nginx funciona bien bajo cargas de trabajo elevadas. Pero HAProxy ofrece más funciones, incluyendo más opciones para seleccionar el algoritmo subyacente, haciendo de HAProxy el equilibrador de carga recomendado de protocolo específico.

Este artículo se actualizó por última vez en enero 2017

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close