No he podido entender por qué recibo este error:
nginx: [advertencia] nombre de servidor conflictivo "stage.mydomain.com" en 0.0.0.0:80, ignorado nginx: [advertencia] nombre de servidor conflictivo "stage.mydomain.com" en 0.0.0.0:443, ignorado
Mi archivo de enlace simbólico habilitado para sitios se ve así. No estoy muy familiarizado con esto, pero soy el único que tiene algún conocimiento sobre servidores. Esto fue copiado de producción. Veo que el puerto 80 y 443 están duplicados pero hay algunas diferencias de configuración en cada bloque.
server {
listen 80;
server_name stage.mydomain.com;
return 301 https://stage.mydomain.com$request_uri$is_args;
}
server {
listen 80;
server_name stage.mydomain.com;
location '/.path/here' {
default_type "text/plain";
root /home/username/www/app_name/current/public;
}
return 301 https://stage.mydomain.com$request_uri$is_args;
}
server {
listen 443;
ssl on;
ssl_certificate /a/path/to/my/file.pem;
ssl_certificate_key /a/path/to/my/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
##ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers "randomstuffhere";
ssl_prefer_server_ciphers on;
client_max_body_size 32000M;
server_name stage.mydomain.com;
return 301 https://stage.mydomain.com$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /a/path/to/my/file.pem;
ssl_certificate_key /a/path/to/my/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
##ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers "randomstuffhere";
ssl_prefer_server_ciphers on;
client_max_body_size 32000M;
server_name stage.mydomain.com;
root /home/username/www/app_name/current/public; # <--- be sure to point to 'public'!
passenger_enabled on;
rails_env staging;
}
Respuesta1
No puede tener 2 declaraciones de servidor usando el mismo nombre de servidor. Nginx no sabría cuál usar si llega una solicitud, ya que ambos comparten el mismo nombre de host virtual. Por tanto, nginx utilizará la primera coincidencia.
Desde su fragmento de configuración, parece que puede eliminar la declaración del puerto 80 del segundo servidor, ya que el directorio raíz es inútil ya que está haciendo una redirección de todos modos (que es lo mismo para la primera declaración del servidor)
También elimine la primera declaración del servidor 443, ya que esto provocaría un bucle de redireccionamiento hacia sí mismo.