O que é realmente solicitado quando o alias está configurado no Apache com CNAME?

7

Eu tenho muitos subdomínios configurados para minha máquina de desenvolvimento, como o seguinte.

  • test1.example.com = > 192.168.0.7
  • test2.example.com = > 192.168.0.7
  • ... (cerca de 30 domínios como este)

Eu tenho muitos sites no meu servidor de desenvolvimento e o Apache pode lidar com aqueles baseados no nome de domínio.

No entanto, sinto-me mal por definir o IP fixo. Então, quero usar aliases assim:

  • default.example.com = > 192.168.0.7
  • test1.example.com = > (CNAME) default.example.com
  • test2.example.com = > (CNAME) default.example.com

A vantagem aqui é quando o IP do servidor de desenvolvimento é alterado, eu só preciso mudar um em vez de muitos.

Se eu solicitar test1.example.com do servidor Apache, ele será usado como test1.example.com ou default.example.com ?

    
por Sam Kong 02.06.2011 / 02:39

3 respostas

10

Em geral, é uma boa ideia, já que você aponta que só precisa alterar o IP em um só lugar agora.

O cliente procuraria o teste1, apontaria para o padrão e, em seguida, obteria o IP. Em seguida, ele se conectaria ao Apache e informaria ao Apache que ele deseja o site test1 (ele não informa ao servidor como ele encontrou o servidor, apenas a solicitação original).

    
por 02.06.2011 / 02:48
3

Você identificou uma vantagem importante no registro CNAME.

No que diz respeito ao apache, o campo Host do cabeçalho HTTP permanecerá o que foi digitado no cliente e o CNAME não terá efeito.

Uma possível desvantagem do CNAME é que procurar um registro que tenha uma entrada CNAME exigirá duas consultas, primeiro para obter o CNAME e o segundo para obter o registro A. Isso provavelmente não é grande coisa, mas vale a pena mencionar.

Por fim, tenha cuidado com o "encadeamento de CNAMEs", que está criando um CNAME para um CNAME. Embora seja permitido sob o RFC, é desencorajado.

    
por 02.06.2011 / 05:37
1

Para responder a sua última pergunta: Se você estiver usando a diretiva NameVirtualHost no Apache e tiver um vhost configurado para cada entrada CNAMEed, você receberá páginas exclusivas conforme definido por esse vhost.

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName test1.example.com
    DocumentRoot /var/www/test1
</VirtualHost>

De um modo geral Da minha experiência, recomendo que você não dependa da configuração padrão para qualquer conteúdo ao vivo e, em vez disso, configure um vhost (com serveraliases, se necessário) para cada nome. Sempre há exceções, mas isso geralmente é mais fácil de depurar, pois todo nome que você está hospedando é explicado por ser explicitamente definido na configuração.

    
por 02.06.2011 / 14:33