Domínios Virtuais

Provedores de serviços Internet (ISPs) podem abrigar páginas Web de centenas ou mesmo de milhares de empresas. Entretanto, manter um servidor Web fisicamente separado para cada domínio (www.empresa1.com.br, www.empresa2.ind.br, …) seria proibitivo em termos de hardware, suporte e custo computacional. Para resolver esse problema, os ISPs fazem uso de uma funcionalidade dos servidores denominada Virtual Hosting, ou Domínios Virtuais.

Usando domínios virtuais, um único servidor HTTP pode atender diversos domínios simultaneamente, de forma transparente para seus clientes. É possível definir, para cada domínio, um conjunto próprio de páginas Web, de configurações e até mesmo de arquivos de log:

Para que o servidor Web decida qual o domínio a ser usado para atender uma determinada requisição, pode ser usadas duas técnicas:

  • Resolução de domínio baseada em nome: o servidor decide o domínio a usar conforme o nome de domínio utilizado em cada requisição HTTP, ou seja, o nome que aparece na URL sendo solicitada. É a abordagem mais simples, pois exige somente o registro dos nomes de domínio no servidor DNS adequado e a configuração do servidor Web para reconhecer cada domínio separadamente.
  • Resolução de domínio baseada em IP: o servidor Web decide o domínio a usar conforme o endereço IP usado para acessá-lo. O sistema que abriga o serviço HTTP deve possuir um endereço IP distinto (ou seja, uma interface de rede virtual distinta) para cada domínio servido. Esta abordagem é pouco utilizada.

A configuração de um domínio virtual no servidor Apache é bastante simples (veja aqui uma descrição detalhada). Aqui serão ilustrados os passos principais da resolução de domínio baseada em nomes.

Para habilitar a resolução de domínios virtuais por nome basta ativar (“descomentar”) a seguinte diretiva no arquivo de configuração “httpd.conf” do servidor Apache:

NameVirtualHost *

Na seqüência, para cada domínio servido deve ser definido um bloco de configuração com a seguinte estrutura, dentro do mesmo arquivo:

<VirtualHost *>

# nome deste domínio
ServerName www.meudominio.com.br

# localização das páginas web deste domínio
DocumentRoot /var/www/meudominio

# opcional: localização do log de erros deste domínio
ErrorLog  /var/log/httpd/meudominio-error_log

# opcional: localização e formato do log de acessos deste domínio
CustomLog /var/log/httpd/meudominio-access_log common

# opcional: e-mail do responsável por este domínio
ServerAdmin webmaster@meudominio.com.br

</VirtualHost>
  • espec/dominios_virtuais.txt
  • Última modificação: 2011/09/06 15:26
  • por maziero