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?

virtual host como 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?

virtual host como configurar

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!