Balanceador de carga compartida

La plataforma Elasticserver le proporciona un equilibrador de carga compartido (resolutor). Representa un servidor proxy NGINX entre el lado del cliente (navegador, por ejemplo) y su aplicación, implementado en Elasticserver Cloud.

Shared LB procesa todas las solicitudes entrantes, enviadas a un nombre de dominio del ambiente ( {user_domain}. { Hoster_domain } ), cuyo punto de entrada (equilibrador, servidor de aplicaciones o incluso base de datos) no tiene una dirección IP pública adjunta.

El Balanceador de carga compartida común procesa las solicitudes, enviadas a todas las aplicaciones, ubicadas dentro del mismo nodo de hardware. Para protegerse de los ataques DDoS , El balanceador de carga compartida está limitado a 50 conexiones simultáneas por la dirección de origen de la solicitud.

Para aumentar la alta disponibilidad del sistema, Elasticserver utiliza varios equilibradores de carga sincronizados , ubicados en diferentes nodos, para manejar las solicitudes simultáneamente. Todos ellos funcionan con un único almacenamiento de datos, lo que los hace totalmente intercambiables en caso de que ocurra algún problema en una de las instancias.

Como resultado, puede haber varios puntos de entrada para los ambientes de los usuarios, utilizados al mismo tiempo. De esta manera, la carga entrante se puede distribuir efectivamente.

Nota: Recomendamos el uso compartido de resolución para sus desarrolladores y prueba de ambientes. En cuanto a los ambientes de producción , que están destinados a manejar mucho tráfico, es más apropiado usar su propia IP pública para obtener y procesar las solicitudes. Además, le permite aplicar una serie de opciones adicionales a su aplicación, lo que puede ayudar a que sea más segura (por ejemplo, con SSL personalizado ) y receptiva (mediante la conexión de un dominio personalizado ).

 

Verificación del estado del backend con balanceador de carga compartido

El Balanceador de carga compartida de Elasticserver realiza comprobaciones de estado constantes de los servidores, utilizando el módulo de verificación ascendente NGINX con la siguiente configuración para eso:

check interval=15000 rise=2 fall=3 timeout=2000 default_down=false;

De esta manera, todos los contenedores se consideran «activos» desde el inicio, mientras que el sistema verifica su disponibilidad cada 15 segundos. Si no se recibe respuesta de un contenedor dentro de 2 segundos, dicha verificación se considera fallida. Tres fallas consecutivas marcarán un nodo como «abajo», mientras que dos comprobaciones exitosas seguidas – como «arriba».

En cuanto a la distribución del tráfico dentro de un ambiente separado, un nodo equilibrador de carga dedicado se agrega automáticamente a su topología cuando el número de instancias del servidor de aplicaciones se establece en más de uno (es decir, se escala  horizontalmente ). Elasticserver PaaS proporciona 4 pilas de equilibradores de carga entre las que puede elegir, cada una de las cuales tiene algunos detalles de configuración de comprobación de estado:

  • NGINX  : ejecuta una simple  verificación tcp  (es decir, verifica la disponibilidad del puerto del servidor requerido) justo antes de enrutar una solicitud del usuario; si la verificación falla, se intentará el siguiente nodo dentro de una capa
  • HAProxy  : realiza comprobaciones periódicas de  TCP  (cada 2 segundos de forma predeterminada), almacena los resultados en una tabla de estado de backends y lo mantiene constantemente actualizado
  • Apache Balancer : no hay un procedimiento de comprobación de estado implementado de forma predeterminada
  • Barniz : todos los backends se asignan con los siguientes parámetros en las configuraciones del equilibrador (para que las comprobaciones de estado se realicen una vez por minuto con un tiempo de espera de 30 segundos):
probe = { .url = "/"; .timeout = 30s; .interval = 60s; .window = 5; .threshold = 2; } }

Obviamente, la configuración de verificación de estado predeterminada se puede ajustar manualmente según sus necesidades (a través de la GUI de Elasticserver File Manager o mediante SSH ) de acuerdo con la especificación de pila del balanceador de carga adecuada; consulte la documentación oficial de NGINX , HAProxy , Apache Balancer o Varnish para ver los detalles sobre posibles configuraciones.