BLOG | NGINX

NGINX Plus y balanceadores de carga de Microsoft Azure

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Michael Pleshakov
Michael Pleshakov
Publicado el 25 de junio de 2021

[Editor: esta publicación se ha actualizado para reflejar las características compatibles con NGINX Plus y los servicios de equilibrio de carga de Azure a partir de junio de 2021. También se refiere a la API NGINX Plus , que reemplaza y deja obsoleto el módulo de configuración dinámica separado mencionado en la versión original de la publicación.]

Los clientes que utilizan Microsoft Azure tienen tres opciones para equilibrar la carga: NGINX Plus , los servicios de equilibrio de carga de Azure, o NGINX Plus junto con los servicios de equilibrio de carga de Azure. Esta publicación tiene como objetivo brindarle suficiente información para tomar una decisión y también le muestra cómo el uso de NGINX Plus con Azure Load Balancer puede brindarle un equilibrador de carga HTTP de alta disponibilidad con una rica funcionalidad de capa 7 .

INFORMACIÓN GENERAL

Microsoft Azure ofrece a sus usuarios dos opciones de equilibrador de carga: Azure Load Balancer para el equilibrio de carga TCP/UDP básico (en la capa 4, la capa de red) y Azure Aplicação Gateway para el equilibrio de carga HTTP/HTTPS (en la capa 7, la capa de aplicação ) . Si bien estas soluciones funcionan para casos de uso simples, no brindan muchas de las características que vienen estándar con NGINX Plus.

A continuación se muestra una comparación general entre NGINX Plus y las ofertas de equilibrio de carga de Azure:

función NGINX Plus Equilibrador de carga de Azure Puerta de enlace de aplicação de Azure NGINX Plus y equilibrador de carga de Azure
Equilibrio de carga HTTP y HTTPS
Equilibrio de carga HTTP/2
Equilibrio de carga de WebSocket
Equilibrio de carga TCP/UDP
Métodos de equilibrio de carga Avanzada Simple Simple Avanzada
Persistencia de sesión Avanzada Simple Simple Avanzada
Comprobaciones de estado HTTP Avanzada Simple Simple Avanzada
Comprobaciones de estado de TCP/UDP Avanzada Simple Avanzada
Terminación SSL/TLS
Límites de velocidad y conexión
Reescritura y redirección de URL
Mapeo de solicitudes de URL
Clúster NGINX Plus activo-activo

Ahora exploremos algunas de las diferencias entre NGINX Plus y los servicios de equilibrio de carga de Azure, sus características únicas y cómo NGINX Plus y los equilibradores de carga de Azure pueden trabajar juntos.

Comparación de NGINX Plus y los servicios de equilibrio de carga de Azure

Métodos de equilibrio de carga

NGINX Plus ofrece una selección de varios métodos de equilibrio de carga además del método Round Robin predeterminado:

  • Menos conexiones : cada solicitud se envía al servidor con el menor número de conexiones activas.
  • Menor tiempo : cada solicitud se envía al servidor con la puntuación más baja, que se calcula a partir de una combinación ponderada de latencia promedio y el menor número de conexiones activas.
  • Hash de IP : cada solicitud se envía al servidor determinado por la dirección IP de origen de la solicitud.
  • Hash genérico: cada solicitud se envía al servidor determinada a partir de una clave definida por el usuario, que puede contener cualquier combinación de texto y variables NGINX, por ejemplo, las variables correspondientes a los campos de encabezado Dirección IP de origen y Puerto de origen , o la URI.
  • Aleatorio : cada solicitud se envía a un servidor seleccionado al azar. Cuando se incluyen dos parámetros, NGINX Plus selecciona dos servidores al azar y luego elige entre ellos utilizando el algoritmo de Menos conexiones (predeterminado) o el de Menos tiempo, según esté configurado.

Todos los métodos se pueden ampliar asignando diferentes valores de peso a cada servidor backend. Para obtener detalles sobre los métodos, consulte la Guía de administración de NGINX Plus.

Azure Load Balancer ofrece un método de equilibrio de carga, Hash , que de manera predeterminada utiliza una clave basada en los campos de encabezado Dirección IP de origen , Puerto de origen , Dirección IP de destino , Puerto de destino y Protocolo para elegir un servidor back-end.

Azure Aplicação Gateway solo proporciona un método round-robin .

Persistencia de sesión

La persistencia de la sesión , también conocida como sesiones persistentes o afinidad de sesión , es necesaria cuando una aplicação requiere que todas las solicitudes de un cliente específico continúen enviándose al mismo servidor back-end porque el estado del cliente no se comparte entre los servidores back-end.

NGINX Plus admite tres métodos avanzados de persistencia de sesión :

  • Cookie adhesiva : NGINX Plus agrega una cookie de sesión a la primera respuesta del grupo ascendente para un cliente determinado. Esta cookie identifica el servidor backend que se utilizó para procesar la solicitud. El cliente incluye esta cookie en solicitudes posteriores y NGINX Plus la utiliza para dirigir la solicitud del cliente al mismo servidor backend.
  • Sticky Learn – NGINX Plus monitorea las solicitudes y respuestas para localizar identificadores de sesión (generalmente cookies) y los utiliza para determinar el servidor para solicitudes posteriores en una sesión.
  • Ruta fija : se puede configurar una asignación entre los valores de ruta y los servidores back-end para que NGINX Plus monitoree las solicitudes de un valor de ruta y elija el servidor back-end correspondiente.

NGINX Plus también ofrece dos métodos básicos de persistencia de sesión, implementados como dos de los métodos de equilibrio de carga descritos anteriormente:

  • Hash de IP : el servidor backend está determinado por la dirección IP de la solicitud.
  • Hash : el servidor backend se determina a partir de una clave definida por el usuario, por ejemplo, la dirección IP de origen y el puerto de origen , o la URI.

Azure Load Balancer admite el equivalente del método hash NGINX Plus, aunque la clave está limitada a determinadas combinaciones de los campos de encabezado Dirección IP de origen , Puerto de origen , Dirección IP de destino , Puerto de destino y Protocolo .

Azure Aplicação Gateway admite el equivalente del método Sticky Cookie de NGINX Plus con las siguientes limitaciones: no se puede configurar el nombre de la cookie, su fecha de vencimiento, el dominio, la ruta ni los atributos de cookie HttpOnly o Secure .

Nota:  Cuando se usa Azure Load Balancer, el método NGINX Plus IP Hash o el método NGINX Plus IP Hash con la dirección IP de origen incluida en la clave, la persistencia de la sesión funciona correctamente solo si la dirección IP del cliente permanece igual durante toda la sesión. Este no siempre es el caso, como cuando un cliente móvil cambia de una red WiFi a una celular, por ejemplo. Para asegurarse de que las solicitudes sigan llegando al mismo servidor backend, es mejor utilizar uno de los métodos avanzados de persistencia de sesión enumerados anteriormente.

Comprobaciones de estado

Azure Load Balancer y Azure Aplicação Gateway admiten comprobaciones básicas del estado de las aplicação . Puede especificar la URL que solicita el balanceador de carga y considera que el servidor backend está en buen estado si recibe el HTTP esperado.200 código de retorno. Puede especificar la frecuencia de verificación del estado y el período de tiempo de espera antes de que el servidor se considere no saludable. Con Azure Aplicação Gateway, también puede personalizar el código de respuesta esperado y compararlo con el contenido del cuerpo de la respuesta.

NGINX Plus amplía esta funcionalidad con controles de estado avanzados . Además de especificar la URL a utilizar, con NGINX Plus puedes insertar encabezados en la solicitud y buscar diferentes códigos de respuesta, y examinar tanto los encabezados como el cuerpo de la respuesta.

Una característica útil relacionada con NGINX Plus es el inicio lento . NGINX Plus aumenta lentamente la carga de un servidor nuevo o recientemente recuperado para que no se vea abrumado por las conexiones. Esto es útil cuando los servidores backend requieren un tiempo de calentamiento y fallarán si se les da su parte completa de tráfico tan pronto como se muestren como saludables.

NGINX Plus también admite comprobaciones del estado de los servidores TCP y UDP , que le permiten especificar una cadena para enviar y una cadena para buscar en la respuesta.

Azure Load Balancer admite comprobaciones de estado de TCP, pero no ofrece este nivel de supervisión.

Terminación SSL/TLS

NGINX Plus admite la terminación SSL/TLS , al igual que Azure Aplicação Gateway . Azure Load Balancer no lo hace.

Límites de conexión y velocidad

Con NGINX Plus, puede configurar múltiples límites para controlar el tráfico hacia y desde su instancia NGINX Plus. Estos incluyen limitar las conexiones entrantes , las conexiones a los nodos back-end , la velocidad de las solicitudes entrantes y la velocidad de transmisión de datos desde NGINX Plus a los clientes.

Azure Aplicação Gateway y Azure Load Balancer no admiten límites de velocidad ni de conexión. Sin embargo, puede utilizar otros servicios de Azure para configurar y habilitar la limitación de velocidad.

Compatibilidad con protocolos y reescritura y redirección de URL

NGINX Plus, Azure Aplicação Gateway y Azure Load Balancer admiten lo siguiente:

  • HTTP/2 – NGINX Plus ha aceptado solicitudes HTTP/2 de clientes desde 2016. Azure agregó compatibilidad con WebSocket más recientemente.
  • WebSocket – NGINX Plus ha aceptado conexiones WebSocket de clientes desde 2014. Azure agregó compatibilidad con WebSocket más recientemente.
  • Reescritura de URL y redirección de solicitudes : la URL de una solicitud se puede cambiar antes de pasarla a un servidor backend, lo que significa que puede cambiar las rutas de solicitud y las ubicaciones de los archivos internamente sin modificar las URL anunciadas a los clientes. También puede redirigir solicitudes, por ejemplo, cambiando el esquema de una solicitud HTTP a HTTPS.

NGINX Plus con servicios de equilibrio de carga de Azure

Cuando se utiliza junto con Azure Load Balancer y Azure Traffic Manager , NGINX Plus se convierte en una solución de equilibrador de carga de alta disponibilidad con una rica funcionalidad de capa 7.

Alta disponibilidad activa-activa

Al usar Azure Load Balancer para equilibrar la carga entre instancias de NGINX Plus en un conjunto de disponibilidad , se crea un equilibrador de carga de alta disponibilidad dentro de una región.

Escalado automático de NGINX Plus

Puede configurar el escalado automático de las instancias de NGINX Plus en función del uso promedio de la CPU. Esto es posible mediante la creación de conjuntos de disponibilidad en el servicio en la nube de Azure que hospeda sus instancias de NGINX Plus. Debes encargarte de la sincronización de los archivos de configuración de NGINX Plus.

Escalado automático de instancias de backend

También puede configurar el escalamiento automático de sus instancias de backend en función del uso promedio de la CPU. Esto es posible mediante la creación de conjuntos de disponibilidad en el servicio en la nube de Azure que hospeda sus instancias de back-end. Debes encargarte de agregar o eliminar instancias de backend de la configuración de NGINX Plus, lo cual es posible con la API de NGINX Plus .

Para automatizar las actualizaciones de la configuración de NGINX Plus (ya sea en combinación con conjuntos de disponibilidad o al usar NGINX Plus por sí solo), puede integrar un sistema de descubrimiento de servicios con NGINX Plus, ya sea a través de la API de NGINX Plus o a través de DNS, si el sistema tiene una interfaz DNS. Consulte nuestras publicaciones de blog sobre el uso de NGINX Plus con sistemas de descubrimiento de servicios populares:

Integración con Azure Traffic Manager

Para un entorno distribuido globalmente, puede usar Azure Traffic Manager para distribuir el tráfico de los clientes en muchas regiones.

Características adicionales en los servicios de equilibrio de carga de Azure

Azure Load Balancer y Aplicação Gateway son administrados por Azure Cloud y ambos brindan una solución de equilibrio de carga de alta disponibilidad.

Una característica de Azure Load Balancer que no está disponible en NGINX Plus es el NAT de origen , en el que el tráfico saliente de las instancias de back-end tiene la misma dirección IP de origen que el equilibrador de carga.

Azure Load Balancer proporciona reconfiguración automática cuando se utiliza la función de escalamiento automático de Azure Cloud.

resumen

Si sus requisitos de equilibrio de carga son simples, las ofertas de equilibrio de carga de Azure pueden proporcionar una buena solución. Cuando los requisitos se vuelven más complejos, NGINX Plus es una buena opción. Puede usar NGINX Plus solo o junto con Azure Load Balancer para lograr una alta disponibilidad de las instancias de NGINX Plus.

Para probar NGINX Plus en Microsoft Azure, comience hoy su prueba gratuita de 30 días o contáctenos para analizar sus casos de uso .


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.