Configurar CNAME para problema de subdomínio

4

Eu configuraria isso:

  • o usuário vai para test.example_site1.org
  • test.example_org1.org é um CNAME de test.example_org2.org
  • o usuário verá a página de test.example_org2.org

No servidor example_org2.org eu uso nginx e tenho 3 projetos de django.

test.example_org2.org mostra o terceiro projeto do django. O link mostra o primeiro projeto de django.

O problema é que eu configurei um CNAME no example_org1.org para apontar test.example_org1.org para test.example_org2.org, mas se eu tentar ir para link Eu vejo o primeiro projeto django, que é configurado para o domínio principal e não para o subdomínio. Caso contrário, se eu for diretamente para o link , tudo funciona e vejo meu projeto correto.

Por que esse problema?

    
por Fred Collins 17.08.2011 / 14:07

2 respostas

4

CNAME estão lá apenas para dizer que sub1.domain tem o mesmo IP que sub2.domain . Mas ele não diz a um servidor da Web que ele deve servir o mesmo conteúdo.

Quando você insere o nome de domínio em seu navegador, ele verifica o IP por meio de uma consulta DNS e recebe uma resposta dizendo que este é um CNAME para test.example_org2.org, que aponta para IP 1.2. 3.4 . Em seguida, o navegador se conecta a esse IP e envia um cabeçalho Host com um valor test.example_org1.org (porque é isso que você solicitou). Ngnix obtém isso, e como ele não sabe nada sobre ele (não está em sua configuração), ele serve o primeiro virtualhost que ele possui.

Você poderia dizer ao virtualhost padrão que, se alguém perguntar por test.example_org1.org , ele deve ser redirecionado para test.example_org2.org (não testado):

if ($host ~* "^test.example_org1.org$"){
  rewrite ^(.*)$ http://test.example_org2.org permanent;
  break;
}
    
por 17.08.2011 / 14:55
4

que tal adicionar test.example_org2.org ao server_name juntamente com test.example_org1.org

server {
   server_name test.example_org1.org test.example_org2.org;

...
}
    
por 25.10.2011 / 16:34