
Deje que el equilibrador de carga pase datos cifrados SSL/TLS a los servidores. Me pregunto cómo se procesa un protocolo de enlace si se establece una nueva conexión HTTPS con un cliente: el protocolo de enlace es una comunicación con estado. Por ejemplo, para verificar el mensaje finalizado del cliente, el servidor necesita conocer todos los mensajes de protocolo de enlace que se han intercambiado entre el servidor (granja) y el cliente hasta el momento. Por lo tanto, hasta donde puedo ver, hay tres posibilidades:
Los datos SSL/TLS se guardan en una caché compartida por todos los servidores.
El contenido de los mensajes de protocolo de enlace se replica en todos los servidores.
El equilibrador de carga dirige todos los mensajes de protocolo de enlace del cliente al mismo servidor.
Pregunta: ¿Qué escenario se utiliza normalmente en un entorno de este tipo? ¿Existen otras políticas sobre el manejo de los apretones de manos que me perdí?
Agregado:Me enfrento a la afirmación de que mi pregunta es un duplicado y me dicen que la edite para explicar por qué es diferente deEquilibrio de carga y estrategias HTTPS. Aquí está mi comparación entre mi pregunta y la otra pregunta:
a) Descubrí tres opciones para manejar el estado https en un entorno de equilibrio de carga y pregunté cuáles de ellas (o tal vez otras) se utilizan en la práctica.
b) En la otra pregunta, el OP utiliza la opción 3 ("mismo servidor"), es decir, todas las solicitudes con la misma IP se enrutan al mismo servidor. Sin embargo, dado que la mayoría de sus clientes usan la misma IP, lb no funciona bien y OP pide una salida. Cuatro y medio de cinco respuestas dan sugerencias que, de hecho, mantienen la opción 3 anterior. Una parte de una respuesta ("DNS para el servidor de destino") no la entendí.
Entonces, la pregunta sigue siendo si las opciones 1 ("caché SSL") y 2 ("replicación de datos de Hanshake SSL") se utilizan en la práctica. El artículohttp://wtarreau.blogspot.de/2006/11/making-applications-scalable-with-load.htmlparece favorecer la opción 1 (consulte "4. Granja de caché SSL dedicada").
Respuesta1
Si el requisito es tener HTTPS en todas las partes de la configuración, es más fácil/más factible que el protocolo de enlace se realice entre el cliente y lb, y luego tener un conjunto separado de certificados entre lb y los servidores.
La transferencia SSL es posible y algunas CDN lo ofrecen. Según tengo entendido, todo el tráfico se reenvía tal cual, pero esto no permite el equilibrio de carga.
Para que esto funcione, necesitaría mantener la sesión en el nivel LB.
Respuesta2
Puede realizar transferencia SSL a través de servidores proxy de flujo TCP en Nginx
https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/