
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.