====== 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:
{{ :espec:http-virtual-hosting.png |}}
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 ([[http://httpd.apache.org/docs/2.0/vhosts|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:
# 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