====== 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