DNS e virtual hosting

Com poucas exceções, ao registrar um domínio você precisa fornecer o endereço de dois servidores DNS (primário e secundário), para onde serão encaminhadas as consultas referentes ao seu domínio. O segundo servidor é exigido para fins de redundância, garantindo que as requisições continuem a ser respondidas mesmo que o primeiro servidor esteja fora do ar.

Uma opção muito usada para o segundo DNS é pedir para que algum amigo, que também possua um servidor dedicado, seja seu DNS secundário. Ele precisará apenas adicionar a configuração do seu domínio na configuração do DNS, o que é rápido e indolor. Se você administra dois servidores diferentes, pode também configurar o servidor B para ser o DNS secundário dos domínios hospedados no servidor A e vice-versa.

Ao locar um servidor dedicado, é comum que você receba dois ou mais endereços IP’s válidos. Originalmente, seu servidor vai estar configurado para usar apenas um deles, mas você pode ativar o segundo (mesmo que o servidor possua apenas uma placa de rede) usando o ifconfig, como veremos em detalhes a seguir. Isso permite que o mesmo servidor seja usado simultaneamente como DNS primário e secundário, eliminando a necessidade de um segundo servidor.

Continuando, ao registrar um domínio, você passa a ter autoridade sobre ele e pode criar subdomínios da forma como quiser, como “fulano.meunome.com.br” ou “vendas.minhaempresa.com”. Veja o caso dos serviços de hospedagem gratuita de blogs e sites, como o blogger, o wordpress e tantos outros, que, em muitos casos, criam milhões de subdomínios diferentes para as páginas hospedadas.

Resolver um nome de domínio (ou seja, percorrer todo o caminho necessário para descobrir o IP do servidor responsável, começando com a requisição enviada aos root servers) é uma operação que pode demorar vários segundos, por isso os servidores DNS armazenam um cache de domínios já resolvidos, minimizando o número de requisições. É por isso que quando você faz alguma mudança na configuração do domínio, demora algumas horas para que ela se replique. Isso explica também casos onde você não consegue acessar um determinado site usando o DNS do provedor (que está desatualizado), mas consegue usando um DNS local, ou outro servidor qualquer.

Um único servidor pode ser configurado para responder por inúmeros domínios, assim como um único servidor web pode hospedar vários sites. As duas configurações acabam intimamente ligadas, já que é justamente a presença de vários domínios, ou vários subdomínios que permite ao servidor web entregar a página apropriada ao cliente.

Imagine o caso de um servidor que hospeda 10.000 sites. Na configuração do Apache, especificamos o domínio e o diretório local correspondente a cada site, como em:

<VirtualHost *>
ServerAdmin webmaster@gdhn.com.br
ServerName www.gdhn.com.br
ServerAlias gdhn.com.br
DocumentRoot /var/www/gdhn
</VirtualHost>

A idéia aqui é que o visitante digita o nome de domínio do site no navegador e, ao receber a requisição, o Apache se encarrega de enviá-lo ao diretório correto. Isso é possível porque o domínio a ser acessado é uma informação que faz parte da requisição enviada pelo cliente.

Depois de resolver o domínio e obter o endereço do servidor do site, o cliente não pedirá “me envie a página index do site”, mas sim “me envie a página index do site www.gdhn.com.br“. O fato do domínio ser incluído na requisição permite que o Apache verifique a configuração e forneça os arquivos do diretório correto.

Se seu servidor estiver hospedando subdomínios, ou seja, endereços como “www.fulano.gdhn.com.br“, “www.ciclano.gdhn.com.br“, etc., como fazem serviços de hospedagem, a configuração continua basicamente a mesma: você especifica o subdomínio do cliente na configuração do VirtualHost do Apache e também na configuração do servidor DNS.

Uma observação importante é que, para o Apache, o domínio “www.fulano.gdhn.com.br” é diferente de apenas “fulano.gdhn.com.br“. A linha “ServerAlias” na configuração serve justamente para permitir que o site seja acessado tanto com o www quanto sem, de acordo com o gosto do freguês.

Muitos sites grandes acabam ficando acessíveis apenas com (ou apenas sem) o “www”, simplesmente por que os administradores deixam de criar os aliases necessários na configuração do DNS, ou deixam de configurar o servidor web para responder pelos dois endereços, como no caso do site da claro. Ao acessar o “www.claro.com.br” acesso o site normal da operadora, mas ao tentar o “http://claro.com” obtenho uma mensagem de erro “Invalid Hostname”, gerada pelo servidor IIS que hospeda o site. Este é um exemplo de erro que você vai querer evitar na configuração dos seus servidores:

m7c0cb3d6

Voltando à explicação inicial, como os servidores de registro de domínio lêem as URLs de trás para a frente, todos os acessos a subdomínios dentro do “gdhn.com.br” serão enviados para o servidor DNS responsável pelo domínio e daí para o servidor Apache. Chegamos então ao prato principal, que é a configuração do servidor DNS propriamente dito.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X