Nginx return 301 redireciona todos os domínios

2

Eu tenho vários domínios no meu servidor que estão executando a instalação do nginx da seguinte forma:

server {
    listen 80;
    server_name domain1.com www.domain1.com;
    root /var/www/domain1/public_html;
    index index.php index.html index.html;
}

server {
    listen 80;
    server_name domain2.com www.domain2.com;
    return 301 https://plusgoogle.com/+somepage;
}

server {
    listen 80;
    root /var/www/other_domains/public_html;
    index index.php index.html index.html;
}

Cada bloco de servidor está em seu arquivo separado (domain1.conf, domain2.conf etc)

Agora, para o problema:

  • O domínio 1 está funcionando corretamente como deveria
  • Domain2 - infelizmente não pode testar agora, tem alguns problemas com godaddy, mas tenho certeza que funcionará bem.
  • Outros domínios redirecionam para o URL 301 das configurações do domínio2

Estou um pouco confuso, eu poderia entender se domain2 estaria carregando a raiz de outros domínios, mas como outros domínios redirecionam para 301 quando eu especifique server_name na configuração juntos 301?

Obrigado pela ajuda

Atualizar

  • Você se certificou de que o seu navegador não está em cache - tentei abrir os sites em diferentes dispositivos, acho que corevs que

  • Os domínios são tão distintos na realidade como estão no seu exemplo acima - Sim, na verdade eu não vejo porque não daria os nomes de domínio: domain1 = tomasdostal. com, domínio2 = autodopravadostal.cz, outros domínios = casull.info, forgotmap.com etc.

  • É a segunda configuração do bloco de servidores presente em qualquer outro lugar ou somente neste arquivo de configuração - Estou configurando uma instância aws 100% nova, então tenho certeza que está lá apenas.

por Tom 11.02.2015 / 13:10

1 resposta

6

Você deve ler como o nginx processa solicitações .

No seu caso, as solicitações com domínio desconhecido ficam no servidor padrão . Geralmente primeiro, mas poderia ser qualquer um. Para definir claramente o servidor padrão, você deve usar default_server flag na diretiva listen . Então, no seu bloco de servidor que deve pegar todos os outros domínios, você deve escrever:

listen 80 default_server;
    
por 11.02.2015 / 14:09