Tengo dos aplicaciones en el servidor que funcionaban perfectamente hasta que planeé cambiarlas a HTTPS.
Configuración de Nginx para la aplicación 1:
server_name abc.com my.abc.com static.abc.com
Configuración para la aplicación 2:
server_name _;
Antes de habilitar SSL, ambas aplicaciones funcionaban, por ejemplo
Aplicación1http://static.abc.com/some-assets.png
Aplicación2http://static.def.com/some-assets.png
Después de habilitar SSL
Aplicación1https://static.abc.com/some-assets.png
Aplicación2https://static.def.com/some-assets.png
Si intento acceder a la Aplicación 2 https://static.def.com/some-assets.png
ahora, también apunto a la Aplicación 1 de alguna manera.
Intenté investigar y descubrí que si lo reemplazo server_name _;
con server_name static.def.com;
la configuración de Nginx de la aplicación 2, comienza a funcionar.
Mi pregunta: ¿es necesario que Nginx defina explícitamente los dominios si desea servirlos a través de HTTPS? ¿O es que algo con el protocolo de enlace SSL está fallando, etc. y termina así?
Actualizar:
Archivos de configuración de Nginx:
Respuesta1
Como dijo Johannes, creo que tienes una idea errónea de lo que _
significa server_name
: absolutamente nada. La mayoría de las guías lo incluyen en su servidor general predeterminado para asegurarse de que no interfiera con ningún servidor virtual designado.
Lo que debes haber pasado por alto en lo que estás leyendo (o tal vez las personas que escribieron lo que estás leyendo se lo perdieron) es que un servidor predeterminado adecuado en realidad incluye la default_server
opción como parte de la listen
directiva. Lea nginx.org/r/listen para obtener más información.
Respuesta2
Puede depender del orden de las definiciones de su servidor. _
no es un nombre especial, es simplemente un dominio no válido y por lo tanto nunca coincidirá. Eso hace que sea el mismo que los nombres de servidor en la otra definición de servidor para un host como static.def.com
: Ambos no coinciden. Si no hay ninguna coincidencia, nginx simplemente tomará la primera definición de servidor.