Um registro ou cname

3

Eu tenho um servidor (Ubuntu + Apache) onde hospedamos um aplicativo onde os clientes podem criar seus próprios subdomínios - ou seja, basicamente subdomínios curinga.

Temos um cliente que deseja apontar seu próprio domínio (www.client.com) em seu subdomínio exclusivo (client.app.com) em nosso servidor. Isso deve acontecer de forma transparente, de modo que, quando alguém digitar www.client.com, a URL ainda mostre www.client.com, mas tudo estará funcionando de forma transparente no client.app.com

Em seu DNS, ele deve criar um registro A apontando para nosso endereço IP ou um cname apontando para client.app.com?

Existe alguma diferença no vhost que precisamos criar nos dois casos?

    
por JonoB 25.09.2015 / 22:32

1 resposta

4

In his DNS, should he create an A record pointing at our IP address, or a cname pointing at client.app.com?

Ele deve usar um CNAME apontando para client.app.com. Há muitas razões para fazer isso, mas a melhor é provavelmente porque isso significa menos alterações a serem feitas se o endereço IP do servidor mudar: somente a entrada para client.app.com precisará ser atualizada e tudo o mais que estiver CNAMEd para ele seguirá automaticamente.

Outras razões incluem a incapacidade de ter o mesmo nome. Um registro como registro MX, como um dos outros pôsteres mencionados; bem como a filosofia geral de que um host deve ter apenas um único "nome verdadeiro" (registro A), e outros registros que apontam para o mesmo host devem ser aliases (CNAMEs). É claro que essa filosofia falha quando você tem um único registro A apontando para vários IPs e múltiplos hosts (mas é outro bom argumento para o cliente usar o CNAMES: se o seu serviço se tornar popular, você precisa escalá-lo pelo balanceamento de carga para outros hosts que servem as mesmas coisas, você gostaria que seu cliente se beneficiasse disso sem ter que alterar nada). (É claro que há muitas maneiras de balancear e dimensionar a carga, e você pode facilmente escolher uma que não esteja vinculada ao DNS, mas isso depende da sua implementação.)

Are there any differences in the vhost that we need to create in either case?

Independentemente do método DNS escolhido, você precisará verificar se o apache está configurado para aceitar os outros nomes.

so that when someone types in www.client.com, the url still shows www.client.com, but everything is transparently working on client.app.com

É claro que você vai querer confirmar o abaixo com um tour pelos documentos do apache, mas posso pensar em duas maneiras de fazer isso:

  1. UseCanonicalName Off com ServerAlias dentro de cada VirtualHost entrada:

    UseCanonicalName Off <VirtualHost *:80> ServerName www.client.com ServerAlias client.app.com DocumentRoot /www/client </VirtualHost>

  2. Use vários ServerName e VirtualHost :

    <VirtualHost *:80> ServerName www.client.com DocumentRoot /www/client </VirtualHost> <VirtualHost *:80> ServerName client.app.com DocumentRoot /www/client </VirtualHost>

Lembre-se de que, com qualquer um dos métodos, talvez você tenha que garantir que o HTML e os scripts associados estejam fazendo "a coisa certa" para gerar URLs adequadamente para o comportamento desejado.

Há também muitos bons exemplos e discussões interessantes aqui: link sobre o tópico

    
por 25.09.2015 / 23:07