Em algum momento, você pode se encontrar em uma rede insegura ou com um firewall excessivamente restritivo e desejar garantir que ninguém esteja observando seu tráfego. Uma solução é usar uma VPN, mas muitas VPNs exigem um software cliente especial em sua máquina, que você pode não ter direitos para instalar. No entanto, se tudo o que você precisa para proteger é sua navegação na web, existe uma alternativa rápida, gratuita e útil: um túnel proxy SOCKS 5.
O servidor Web do Apache é um método popular para atender sites na Internet. Em 2019, as estimativas apontavam que o método atenderia 29% de todos os sites ativos, oferecendo robustez e flexibilidade aos desenvolvedores. Ao usar o Apache, um administrador pode configurar um servidor para hospedar vários domínios ou sites fora de uma única interface ou IP, usando um sistema correspondente.
Cada domínio ou site individual — conhecido como “host virtual” — configurado usando o Apache irá direcionar o visitante para um diretório específico que possui informações daquele site. Isso é feito sem indicar que o mesmo servidor também é o responsável por outros sites. Esse esquema pode ser expandido, sem qualquer limite de software, desde que o seu servidor consiga lidar com a carga. A unidade básica que descreve um site ou domínio individual é chamada de virtual host.
Neste guia, apresentaremos a você um passo a passo sobre como configurar os hosts virtuais do Apache em um servidor Ubuntu 18.04. Durante esse processo, você aprenderá como atender conteúdos diferentes para visitantes diferentes, dependendo de quais domínios que eles estiverem solicitando.
Você também precisará ter o Apache instalado para trabalhar através desses passos. Se ainda não tiver feito isso, é possível instalar o Apache no seu servidor através do pacote da ferramenta apt:
Para o nosso propósito neste guia, nossa configuração criará um host virtual para o example.com e outro para o test.com. Esses arquivos serão referenciados durante todo o guia, mas você deve substituir seus próprios domínios ou valores, enquanto estiver seguindo o guia.
Se estiver utilizando a DigitalOcean, você pode aprender como configurar domínios, seguindo a documentação do produto, Como adicionar domínios. Para outros provedores, consulte a documentação relevante dos respectivos produtos. Se você não tiver domínios disponíveis no momento, você poderá usar os valores de teste.
Mais adiante neste guia, vamos mostrar como editar seu arquivo de hosts locais para testar a configuração, se você estiver usando valores de teste. Isso permitirá que você valide sua configuração a partir do seu computador doméstico, embora seu conteúdo não ficará disponível através do nome de domínio para outros visitantes.
Passo 1 — Criar a estrutura de diretório
O primeiro passo que vamos dar será criar uma estrutura de diretório que reterá os dados do site que vamos oferecer aos visitantes.
Nosso document root (o diretório de nível superior que o Apache examina para encontrar conteúdo para atender) será configurado em diretórios individuais, sob o diretório /var/www. Aqui, criaremos um diretório para ambos os hosts virtuais que planejamos fazer.
Dentro de cada um desses diretórios, criaremos uma pasta public_html que reterá nossos arquivos reais. Isso nos possibilita uma certa flexibilidade em nossa hospedagem.
Por exemplo, em relação aos nossos sites, vamos fazer nossos diretórios como segue. Caso esteja usando domínios reais ou valores alternativos, troque o texto destacado por esses.
As partes em vermelho representam os nomes de domínios que queremos atender a partir do nosso VPS (Servidor virtual privado).
Passo 2 — Conceder permissões
Agora, temos a estrutura de diretório para nossos arquivos, mas eles são propriedade do nosso usuário root. Se quisermos que nosso usuário comum consiga modificar os arquivos em nossos diretórios Web, podemos alterar a propriedade, fazendo o seguinte:
A variável $USER utilizará o valor do usuário que estiver conectado no momento, assim que pressionar ENTER. Ao fazer isso, nosso usuário comum será o proprietário dos subdiretórios public_html, onde iremos armazenar nosso conteúdo.
Também devemos modificar as permissões para garantir o acesso de leitura ao diretório Web geral e a todos os arquivos e pastas que ele contenha, para que páginas possam ser atendidas corretamente:
sudo chmod -R 755 /var/www
Copy
Agora, seu servidor Web deve ter as permissões necessárias para oferecer conteúdo e seu usuário deve conseguir criar conteúdo nas pastas necessárias.
Passo 3 — Criar páginas de demonstração para cada host virtual
Agora, temos a estrutura de nosso diretório está em funcionamento. Vamos criar um conteúdo para oferecer.
A título de demonstração, vamos criar uma página index.html para cada site.
Vamos começar com o example.com. Podemos abrir um arquivo index.html em um editor de texto. Neste caso, usaremos o nano:
nano /var/www/example.com/public_html/index.html
Copy
Dentro desse arquivo, crie um documento HTML que indique o site ao qual ele está conectado, como o seguinte:/var/www/example.com/public_html/index.html
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
Copy
Salve e feche o arquivo (no nano, pressione CTRL + X e, depois, Y e, finalmente, ENTER) quando terminar.
Podemos copiar esse arquivo para usar como base para nosso segundo site, digitando:
Na sequência, podemos abrir o arquivo e modificar as informações relevantes:
nano /var/www/test.com/public_html/index.html
Copy/var/www/test.com/public_html/index.html
<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body> <h1>Success! The test.com virtual host is working!</h1>
</body>
</html>
Copy
Salve e feche esse arquivo também. Agora, você tem as páginas necessárias para testar a configuração do host virtual.
Passo 4 — Criar novos arquivos do host virtual
Os arquivos do host virtual são os arquivos que especificam a configuração real dos nossos hosts virtuais e determinam o modo como o servidor Web Apache responderá às solicitações de vários domínios.
O Apache vem com um arquivo padrão de host virtual, chamado 000-default.conf, que podemos usar como ponto de partida. Vamos copiá-lo para criar um arquivo de host virtual para cada um dos nossos domínios.
Começaremos com um domínio, configurando-o e copiando-o para nosso segundo domínio e, em seguida, faremos alguns outros ajustes necessários. A configuração padrão do Ubuntu exige que cada arquivo de host virtual termine em .conf.
Crie o primeiro arquivo de host virtual
Comece copiando o arquivo para o primeiro domínio:
Dentro desse arquivo, vamos personalizar os itens para nosso primeiro domínio e adicionar algumas diretivas. Esta seção do host virtual corresponde a quaisquer pedidos que forem feitos na porta 80, que é a porta padrão do HTTP.
Primeiro, precisamos alterar a diretiva ServerAdmin para um e-mail que o administrador do site possa receber e-mails.
ServerAdmin admin@example.com
Depois disso, precisamos adicionar duas diretivas. A primeira, chamada ServerName, estabelece o domínio base que deve corresponder à definição desse host virtual. Esse provavelmente será o seu domínio. A segunda, chamada de ServerAlias, define os outros nomes que devem corresponder como se fossem o nome base. Isso é útil para os hosts correspondentes que você definiu, como www:
A única outra coisa que precisamos alterar em nosso arquivo de host virtual é a localização do diretório base desse domínio. Já criamos o diretório que precisamos, então precisamos apenas alterar a diretiva DocumentRoot para refletir o diretório que criamos:
DocumentRoot /var/www/example.com/public_html
Quando estiver concluído, nosso arquivo de host virtual deverá ter a seguinte aparência:/etc/apache2/sites-available/example.com.conf
Copiar o primeiro host virtual e personalizar para o segundo domínio
Com o nosso primeiro arquivo de host virtual estabelecido, agora podemos criar nosso segundo host virtual, copiando aquele arquivo e ajustando-o, conforme necessário.
Agora, você precisará modificar todas as informações para referenciar seu segundo domínio. Quando tiver terminado, ele deverá ter a seguinte aparência:/etc/apache2/sites-available/test.com.conf
Passo 5 — Habilitar os novos arquivos de host virtual
Agora que criamos os arquivos de host virtual, precisamos habilitá-los. O Apache inclui algumas ferramentas que nos permitem fazer isso.
Vamos usar a ferramenta a2ensite para habilitar cada um dos nossos sites. Caso queira ler mais a respeito deste script, consulte a documentação a2ensite.
Em seguida, desabilite o site padrão definido em 000-default.conf:
sudo a2dissite 000-default.conf
Copy
Quando tiver terminado, você precisará reiniciar o Apache para as alterações entrem em vigor e usar o systemctl status para verificar o sucesso da reinicialização.
sudo systemctl restart apache2
sudo systemctl status apache2
Copy
Agora, seu servidor deve estar configurado para atender dois sites.
Passo 6 — Configurar o arquivo de hosts locais (opcional)
Se você não usou nomes de domínios reais – de sua propriedade – para testar esse procedimento mas, em vez disso, usou alguns domínios de exemplo, pelo menos você conseguirá testar a funcionalidade desse processo, alterando temporariamente o arquivo hosts em seu computador local.
Isso interceptará quaisquer pedidos para os domínios que você configurou e irá apontá-los para seu servidor VPS, da mesma forma que o sistema DNS faria caso estivesse usando domínios registrados. Entretanto, isso somente funcionará a partir do seu computador local e somente para fins de teste.
Certifique-se de que esteja operando em seu computador local para esses passos e não em seu servidor VPS. Você precisará saber a senha administrativa do computador ou, então, ser membro do grupo administrativo.
Caso esteja em um computador Mac ou Linux, edite seu arquivo local com privilégios administrativos, digitando:
Os detalhes que você precisará adicionar são o endereço IP público do seu servidor, seguido do domínio que quiser usar para acessar aquele servidor.
Utilizando os domínios usados neste guia e substituindo o IP do seu servidor pelo texto your_server_IP, seu arquivo deverá ficar com a seguinte aparência:/etc/hosts
Isso direcionará quaisquer pedidos para o example.com e o test.com em nosso computador e os enviará para nosso servidor. Isso é o que queremos, caso não sejamos os proprietários desses domínios, para podermos testar nossos hosts virtuais.
Passo 7 — Testar seus resultados
Agora que você tem seus hosts virtuais configurados, poderá testar suas configurações, acessando os domínios que configurou em seu navegador Web:
http://example.com
Você deve ver uma página que se parece com esta:
Também é possível visitar sua segunda página e ver o arquivo criado para seu segundo site.
http://test.com
Caso ambos esses sites funcionarem conforme o esperado, significa que você configurou com sucesso os dois hosts virtuais no mesmo servidor.
Caso tenha ajustado o arquivo hosts do seu computador doméstico, talvez queira excluir as linhas que adicionou, agora que verificou que sua configuração funciona. Isso impedirá que seu arquivo hosts seja preenchido com entradas que não são mais necessárias.
Se você acompanhou este guia, agora deverá ter um único servidor manipulando dois nomes de domínio separados. Você pode expandir esse processo, seguindo os passos que definimos acima para fazer hosts virtuais adicionais.
Não há uma limitação do software quanto ao número de nomes de domínios que o Apache consegue gerenciar. Assim, fique à vontade para criar tantos domínios quantos o seu servidor conseguir manipular.