
Tengo múltiples y diferentes aplicaciones dockerizadas, cada una viene con su servicio Nginx adecuado que envía tráfico a sus contenedores según algunas reglas.
Necesito colocar esas aplicaciones en el mismo servidor, así que agregué un nuevo Nginx en el host que manejará SSL y reenviará el tráfico al Nginx acoplado correcto.
Pregunta: ¿Está bien usar Nginx en el host que reenviará el tráfico a varios Nginx acoplados diferentes? ¿Tiene algún problema conocido? ¿Eso afectará el rendimiento?
Respuesta1
¿Está bien usar Nginx en el host que reenviará el tráfico a múltiples Nginx dockerizados diferentes?
Sí, en realidad es una práctica común.
¿Tiene algún problema conocido?
Causado por esta configuración en sí, no.
¿Eso afectará el rendimiento?
En cierto modo, seguro: como cualquier otro equilibrador de carga (que lo es), agregará algo de retraso en el almacenamiento en búfer y en los sockets TCP.
Respuesta2
¿Está bien usar Nginx en el host que reenviará el tráfico a múltiples Nginx dockerizados diferentes?
Sí. Esta es un forma de hacerlo.
¿Tiene algún problema conocido?
La instancia de host de NGINX no está en contenedores, lo que puede dificultar su configuración. Otra forma común de hacer esto es tener un contenedor acoplable vinculado al puerto
80
y443
que maneje todo el tráfico de entrada y lo desvíe al contenedor correspondiente.Finalmente, otros sistemas de orquestación de contenedores como Kubernetes tienen el concepto
Ingress
integrado y permiten configurarlo tal como lo haría con un contenedor en Docker Compose. La ventaja de Kubernetes Ingress es que puede escalar hacia arriba o hacia abajo a múltiples servidores, mientras que Docker Compose está más limitado.¿Eso afectará el rendimiento?
Tener un salto adicional para llegar al contenedor de destino perjudica negativamente el rendimiento, pero es algo común.