Equilibrio de carga de Nginx con sesiones

Equilibrio de carga de Nginx con sesiones

He visto que configurar el equilibrio de carga con nginx esmuy fácily me gustaría intentarlo. Mi única preocupación son las sesiones: ¿cómo puedo aprovechar nginx para enrutar todas las llamadas posteriores de un cliente al mismo servidor para lograr la estabilidad de la sesión?

Gracias

Respuesta1

utilizar la directiva ip_hash

Respuesta2

Como alternativa puedes mirarMódulo adhesivo Nginx

Cuando se trata de varios servidores backend, a veces es útil que un cliente (navegador) sea siempre atendido por el mismo servidor backend (para la persistencia de la sesión, por ejemplo).

Usar una persistencia por IP (con el módulo ascendente ip_hash) tal vez no sea una buena idea porque podría haber situaciones en las que muchos navegadores diferentes vengan con la misma dirección IP (detrás de los servidores proxy) y el sistema de equilibrio de carga no será justo. .

El uso de una cookie para rastrear el servidor ascendente hace que cada navegador sea único.

Cuando el módulo adhesivo no se puede aplicar, vuelve al clásico Round Robin Upstream o devuelve una "Puerta de enlace incorrecta" (dependiendo del indicador no_fallback).

El módulo adhesivo no se puede aplicar cuando el navegador no admite cookies

Respuesta3

ip_hash es la regla de equilibrio de carga de nginx para la sesión. Sin embargo, el servidor nginx debe obtener la IP real. Si usa Squid como servidor frontal, entonces el servidor nginx obtendrá la IP de Squid. A continuación, nginx debe dirigir el servidor real. Si hay otros servidores de equilibrio de carga después del servidor nginx, la sesión no se enviará al mismo servidor real.

información relacionada