nginx: [aviso] nome de servidor conflitante

nginx: [aviso] nome de servidor conflitante

Não consegui descobrir por que estou recebendo este erro:

nginx: [avisar] nome de servidor conflitante "stage.mydomain.com" em 0.0.0.0:80, ignorado nginx: [avisar] nome de servidor conflitante "stage.mydomain.com" em 0.0.0.0:443, ignorado

Meu arquivo de link simbólico habilitado para sites se parece com. Não estou muito familiarizado com isso, mas sou o único que tem algum conhecimento em servidores. Isso foi copiado da produção. Vejo que as portas 80 e 443 estão duplicadas, mas há algumas diferenças de configuração em cada bloco.

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;
}

Responder1

Você não pode ter 2 instruções de servidor usando o mesmo server_name. O Nginx não saberia qual usar se uma solicitação chegasse, pois ambos compartilham o mesmo nome de host virtual. Assim, o nginx usará a primeira correspondência.

No seu sniplet de configuração, parece que você pode eliminar a instrução da segunda porta 80 do servidor, pois o diretório raiz é inútil, pois você está fazendo um redirecionamento de qualquer maneira (que é o mesmo para a primeira instrução do servidor)

Elimine também a primeira instrução 443 do servidor, pois isso causaria um loop de redirecionamento para si mesmo.

informação relacionada