No processo de desenvolvimento de um software, o computador utilizado funciona como se fosse um servidor local, ou local host. Os programadores buscam replicar ao máximo o ambiente de produção, por meio de inúmeras técnicas.
Uma delas é o virtual host. Da mesma forma que um servidor por ser configurado para servir somente uma página — principal escolha de clientes que administram seu próprio servidor —, ele também pode ser programado para hospedar múltiplos sites.
Entenda mais sobre o assunto no conteúdo a seguir!
O que é um virtual host?
Um virtual host ( servidor virtual) é uma funcionalidade do servidor Apache que permite hospedar mais de uma página web em um mesmo ambiente.
Inicialmente, essa solução forçava o compartilhamento dos recursos de uma única máquina com todos esses sites — memória RAM, CPU, armazenamento etc. Para evitar a sobrecarga, tais recursos eram otimizados para oferecer máxima experiência.
Assim que as soluções em nuvem — Cloud Server — surgiram, o servidor virtual consegue expandir sua capacidade de funcionamento, permitindo a hospedagem de aplicativos virtuais, armazenamento virtual, ou mesmo a criação de um data center inteiramente virtual.
Como um virtual host funciona?
Na prática, os hosts virtuais operam da seguinte forma:
- uma máquina faz um pedido para acessar uma página por meio de seu nome de domínio;
- essa solicitação chega ao servidor web, que é enviada para o host virtual, que pode ser uma pasta ou outro servidor;
- assim que a requisição é recebida, o servidor a encaminha para o diretório do site correto.
Métodos de virtual hosts
Antes de falarmos sobre a criação e configuração de um virtual host, você precisa entender os principais métodos utilizados nesse processo. Veja mais abaixo.
Baseados em IP
Trata-se de uma das técnicas mais simples, que pode ser utilizada em diretivas distintas no endereço IP. Então, o virtual host baseado em IP atribui IPs diferentes para cada domínio criado.
Esses IPs redirecionarão as solicitações para domínios exclusivos do servidor — que possui um único endereço IP. Em suma, esse modelo de hospedagem virtual é criado a partir de vários endereços IPs para um servidor.
Baseados em nome
Esse método é o mais utilizado atualmente. O virtual host baseado em nome usa somente um endereço IP para todos os domínios do servidor.
Sempre que o navegador tentar acessar o servidor, indicará o nome do domínio com o qual pretende se conectar.
Assim que o nome correto é verificado, o servidor consulta a configuração do host e retorna com o pedido do site correspondente.
Baseados em porta
Esse tipo de hospedagem se assemelha bastante com o modelo baseado em IP. A única diferença é que, em vez de utilizar um endereço IP diferente para cada domínio hospedado no servidor, usa portas diferentes para configurar cada um dos sites.
Como criar e configurar um host virtual?
Para que você entenda bem o processo de criar e configurar um virtual host, utilizaremos o servidor Apache em um sistema operacional Ubuntu como exemplo. No caso dos domínios, considere as opções: dominio.teste1.com.br, dominio.teste.2.com.br.
1. Crie uma estrutura de diretórios
A primeira coisa a se fazer é criar uma estrutura de diretórios, que será usada para armazenar as informações do site que serão apresentadas aos visitantes — ou serão colhidas dos visitantes.
Nesse sentido, faça a estrutura de diretórios na raiz de documentos: (diretório/var/www), do seguinte modo:
sudo mkdir -p /var/www/dominio.teste1.com.br/public_html
sudo mkdir -p /var/www/dominio.teste2.com.br/public_html
2. Habilite as permissões
A estrutura de diretórios criada na etapa acima pertence ao usuário ROOT. Para alterá-los ou modificar os arquivos no diretório web, pode-se fazer do seguinte modo:
sudo chown -R $USER:$YOUR_USER_NAME /var/www/dominio.teste1.com.br/public_html
sudo chown -R $USER:$ YOUR_USER_NAME /var/www/dominio.teste1.com.br/public_html
3. Crie as páginas de teste
Após finalizar a etapa acima, você deve criar páginas de teste para cada um dos hosts virtuais. Primeiro, crie um ambiente de teste para o dominio.teste1.com.br, por meio de um editor de sua escolha para escrever os comandos em HTML:
vi /var/www/dominio.teste1.com.br/public_html/index.html
Assim que o editor estiver aberto, escreva um código básico, salve e feche-o:
<html>
<head>
<title>Página Inicial do dominio.teste1.com.br<title>
</head>
<body>
<h1>Successo! O virtual host Teste1 está funcionando!</h1>
</body>
</html>
Repita as operações para o endereço dominio.teste2.com.br, salve o editor e feche-o.
4. Crie e habilite novos arquivos para o host virtual
Assim que você abre o Apache, nota que ele já vem com um arquivo de virtual host padrão, chamado 000-default.conf, que deve ser aproveitado.
Copie esse arquivo para o primeiro domínio:
sudo cp /etc/apache2/sites-available/000-default.conf
/etc/apache2/sitesavailable/teste1.conf
Feito isso, abra o arquivo no seu editor, que deverá aparecer algo como:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Nesse ponto, você deve alterar o e-mail padrão para um endereço de administrador do servidor: ServerAdmin admin@teste1.com.br. Em seguida, adicione 2 diretivas: ServerName (para o domínio) e ServerAlias:
ServerName teste1.com.br
ServerAlias www.teste2.com.br
Para finalizar, mude a localização ROOT do documento do domínio:
DocumentRoot/var/www/teste1.com.br/public_html.
Siga todos os passos para o segundo domínio. Depois, é necessário ativar os domínios, por meio do seguinte código:
sudo a2ensite teste1.com.br.conf
sudo a2ensite teste2.com.br.conf
Termine a operação reiniciando os servidor Apache:
sudo service apache2 restart
5. Teste seus resultados
Depois de completar cada uma das etapas, chegou a hora de testar seus resultados. Abra um navegador web de preferência e digite o endereço de cada um dos domínios no campo de pesquisa. Se tudo correu bem, você verá a seguinte frase na tela:
“Sucesso! O virtual host Teste1 está funcionando!”
“Sucesso! O virtual host Teste2 está funcionando!”
Conclusão
Neste conteúdo, você aprendeu o que é um virtual host, como ele funciona, quais as principais formas de configurá-lo e como fazer isso na prática.
A virtualização do servidor é bastante utilizada em hospedagens, devido aos seus inúmeros benefícios, como economia de recursos e facilidade de gerenciamento. Afinal, tudo acontece em uma única máquina.
Gostou deste artigo? Conheça as soluções da SAN Internet e transforme os processos do seu negócio online!