
Hosts Virtuais
Hosts virtuais no Apache servem para hospedar múltiplos sites em um único servidor físico.
O que isso significa na prática:
- Um servidor, vários sites: Em vez de precisar de um servidor físico ou virtual separado para cada site que você deseja hospedar, você pode ter todos eles rodando na mesma máquina.
- Domínios diferentes: Cada site pode ter seu próprio nome de domínio (como site1.com, site2.com), e quando um visitante digita esse endereço no navegador, o Apache sabe qual conjunto de arquivos deve entregar.
- Conteúdos e configurações independentes: Cada site tem seu próprio diretório raiz (DocumentRoot), seus próprios arquivos de log, e pode ter configurações específicas.
Exemplos de uso comuns:
- Uma empresa de hospedagem web usando um servidor para hospedar sites de dezenas de clientes diferentes
- Um desenvolvedor testando vários projetos localmente
- Uma empresa com vários sites ou aplicações (site institucional, blog, loja online, área de clientes) em um único servidor
É como ter vários servidores web distintos, mas economizando recursos ao compartilhar uma única instalação física do Apache. Isso otimiza custos, facilita o gerenciamento e é uma das funcionalidades mais utilizadas em servidores web.
1. Como Configurar Hosts Virtuais no Apache
Vamos criar dois sites diferentes funcionando simultaneamente no seu servidor Apache usando hosts virtuais. Este tutorial assume que você já tem o Apache instalado e um site básico funcionando em /var/www/html.
Passo 1: Preparar a Estrutura de Diretórios
Primeiro, vamos criar diretórios separados para cada site:
- Criar diretórios para os dois sites
sudo mkdir -p /var/www/site1.local/public_html
sudo mkdir -p /var/www/site2.local/public_html
- Definir permissões corretas
sudo chown -R $USER:$USER /var/www/site1.local/public_html
sudo chown -R $USER:$USER /var/www/site2.local/public_html
sudo chmod -R 755 /var/www
Passo 2: Criar Páginas HTML de Exemplo
Vamos criar páginas HTML simples para diferenciar os sites:
- Criar página para o site1
- /var/www/site1.local/public_html/index.html
Site 1
Bem-vindo ao Site 1!
Este é o primeiro site virtual.
- Criar página para o site2
- /var/www/site2.local/public_html/index.html
Site 2
Bem-vindo ao Site 2!
Este é o segundo site virtual.
Passo 3: Criar Arquivos de Configuração de Hosts Virtuais
Agora, vamos criar os arquivos de configuração dos hosts virtuais:
- Criar arquivo de configuração para o site1
sudo nano /etc/apache2/sites-available/site1.local.conf
ServerAdmin webmaster@site1.local
ServerName site1.local
ServerAlias www.site1.local
DocumentRoot /var/www/site1.local/public_html
ErrorLog ${APACHE_LOG_DIR}/site1.local_error.log
CustomLog ${APACHE_LOG_DIR}/site1.local_access.log combined
- Criar arquivo de configuração para o site2
sudo nano /etc/apache2/sites-available/site2.local.conf
ServerAdmin webmaster@site2.local
ServerName site2.local
ServerAlias www.site2.local
DocumentRoot /var/www/site2.local/public_html
ErrorLog ${APACHE_LOG_DIR}/site2.local_error.log
CustomLog ${APACHE_LOG_DIR}/site2.local_access.log combined
Passo 4: Habilitar os Novos Sites
Vamos habilitar os novos sites virtuais:
- Habilitar os sites
sudo a2ensite site1.local.conf
sudo a2ensite site2.local.conf
- Desabilitar o site padrão (opcional)
sudo a2dissite 000-default.conf
Passo 5: Verificar Configuração e Reiniciar o Apache
- Verificar se não há erros de sintaxe
sudo apache2ctl configtest
- Reiniciar o Apache para aplicar as mudanças
sudo systemctl restart apache2
Você deve ver a mensagem “Syntax OK” se tudo estiver correto.
Passo 6: Configurar o Arquivo /etc/hosts para Testes Locais
Como estamos trabalhando em ambiente local, precisamos configurar o arquivo hosts para redirecionar os domínios para o seu próprio computador:
sudo nano /etc/hosts
Adicione as seguintes linhas:
127.0.0.1 site1.local www.site1.local
127.0.0.1 site2.local www.site2.local
Salve o arquivo (Ctrl+O, Enter, Ctrl+X).
Passo 7: Testar os Sites
Agora você pode testar seus sites abrindo um navegador e acessando:
http://site1.local
http://site2.local
Cada URL deve mostrar a página HTML correspondente que você criou anteriormente.
Próximos Passos
- Configure SSL para seus sites com certbot/Let’s Encrypt
- Adicione regras de reescrita para URLs amigáveis
- Configure autenticação básica para áreas protegidas
- Configure hosts virtuais baseados em IP, se necessário
Parabéns! Você agora tem dois sites funcionando com hosts virtuais no Apache. Esta é uma habilidade fundamental para administração de servidores web, permitindo que você hospede múltiplos sites em um único servidor.