Ayuda de Ngnix: ¿varias máquinas virtuales que utilizan Nginix (ESXi con una única IP pública)?

Ayuda de Ngnix: ¿varias máquinas virtuales que utilizan Nginix (ESXi con una única IP pública)?

Actualmente estoy tratando de entender Nginx y necesito orientación; Esto es bastante nuevo para mí, así que disculpe si ya ha sido respondido (¡busqué primero!).

Escenario: tengo un servidor Seafile (cloud.example.com) y un servidor Zammand (support.example.com), ambos en máquinas virtuales de Ubuntu (1 máquina virtual para cada una), que tengo SSL con Certbot. Obviamente puedo ejecutar cualquiera de los dos SSL, pero como ambos usan el puerto 443, ahora tengo un problema sin usar Ngnix correctamente.

Mi primera pregunta es ¿puedo tener otra máquina virtual exclusivamente para Ngnix que pasará las solicitudes de URL a otras máquinas virtuales o necesito tanto Seafile como Zammand en el mismo servidor para usar Ngnix/SSL para ambos? (He instalado ambos en una máquina virtual para realizar pruebas en este momento).

SI ejecuto desde un único servidor (tanto Seafile como Zammand instalados, aunque preferiría cada uno en su propia VM), supongo que solo necesito editar mi "/etc/nginx/sites-available/default" y agregar rutas de enrutamiento allí? Actualmente tengo 3 "sitios disponibles": Seafile, Zammand y predeterminado. Veo que hay "sitios activos" que actualmente es "seafile". Entonces, tanto cloud.example.com como support.example.com, ambos se dirigen a seafile (cloud.example.com)

¿O estoy viendo esto completamente mal? ¡Cualquier consejo constructivo bienvenido! Disculpas si no he descrito esto con demasiada claridad.

Respuesta1

Su mejor opción sería crear una tercera máquina virtual y configurar nginx allí. También puede configurarlo en cualquiera de las máquinas virtuales existentes.

Una vez hecho esto, debe configurar nginx para usar múltiples entradas de "servidor", una para cada dominio que está sirviendo y dirigiendo a un backend diferente.

Hay muchos tutoriales diferentes sobre cómo hacerlo en la web.

Respuesta2

Entonces tienes dos servidores separados e independientes, ¿verdad? Si esto es cierto, entonces necesita usar algo como la inspección SNI para determinar a qué host enviar la conexión. Esto se puede hacer sin finalizar la conexión SSL a partir de nginx 1.11.5 y ngx_stream_ssl_preread_module.

Necesitará configurar la directiva ProxyPass para permitirle enviar los datos al sistema remoto detrás del proxy. Luego, debe asegurarse de que el host Nginx esté en Internet para que todas las consultas pasen por él primero.

Al utilizar la inspección SNI y los servidores proxy de flujo TCP, el servidor remoto maneja todas sus conexiones SSL directamente, nginx solo representa el tráfico desde un punto final IP.

Yo también comprobaría esto:https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

Abordar específicamente la inspección SNI cuando se utilizan proxies TCP Stream:http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.htmlSNI se incluye durante el protocolo de enlace TLS antes de que se procese realmente, por lo que esto permite a nginx enviar el tráfico al punto final correcto y permitir que ese punto final realmente realice el protocolo de enlace TLS.

información relacionada