Hospedar Vários Domínios em 1 Servidor (Apache & Nginx)

Vamos explorar como configurar o Apache e o Nginx para gerenciar múltiplos websites, tudo em um único servidor.

Optar por hospedar seus sites em um servidor na nuvem proporciona uma flexibilidade muito maior em comparação com a hospedagem compartilhada. Isso permite que você personalize seu ambiente, instale o que precisar, ajuste recursos e otimize tanto o desempenho quanto os custos.

Se você administra vários sites empresariais e busca uma alternativa à hospedagem separada, a funcionalidade de Servidor Virtual nos servidores web é uma excelente solução. Vamos analisar esse cenário em detalhes.

Imagine que você tem dois sites que deseja direcionar para sua máquina virtual na nuvem.

Antes de prosseguirmos com a configuração, vamos entender o funcionamento interno.

O conceito de hospedar diversos sites em uma única instância de servidor web é conhecido como servidor virtual. Este é definido dentro do arquivo de configuração do servidor, juntamente com a URL correspondente. Quando uma solicitação é feita para uma URL configurada, o servidor web entrega o conteúdo do diretório raiz associado.

Configurando Hosts Virtuais no Apache para Múltiplos Domínios

  • Acesse o servidor Apache HTTP.
  • Navegue até o diretório de configuração do Apache. (Em instalações padrão, você o encontrará em /etc/httpd/conf/httpd.conf)
  • Faça um backup do arquivo httpd.conf antes de modificá-lo.
  • Crie um contêiner VirtualHost como o exemplo abaixo, que configurei para dois domínios.
<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.etechpt.com.com
   ErrorLog logs/lab.etechpt.com.com-error_log
   CustomLog logs/lab.etechpt.com.com-access_log common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/gf-dev
   ServerName gf.dev
   ErrorLog logs/gf.dev-error_log
   CustomLog logs/gf.dev-access_log common
</VirtualHost>

Observação: Adapte os valores de ServerAdmin, DocumentRoot, ServerName, ErrorLog e CustomLog de acordo com as suas necessidades.

  • Reinicie o serviço Apache HTTP e verifique o funcionamento dos dois URLs.

Configurando Hosts Virtuais no Nginx para Múltiplos Domínios

  • Acesse o servidor Nginx.
  • Vá até o local onde o Nginx foi instalado. (Em instalações padrão, geralmente está em /etc/nginx/)

Existem diversas maneiras de realizar essa configuração. Você pode alterar o arquivo nginx.conf, um arquivo de configuração personalizado já existente, ou criar um arquivo custom.conf dentro do diretório conf.d. Escolha a opção que melhor se adequa às suas preferências e lembre-se de fazer um backup antes de modificar qualquer arquivo.

  • Crie um bloco de servidor para cada URL, como demonstrado abaixo.
server {
   listen 80;
   root /opt/htdocs/lab;
   index index.html index.htm;
   server_name lab.etechpt.com.com;
   location / {
       try_files $uri $uri/ =404;
   }
}

server {
   listen 80;
   root /opt/htdocs/gf-dev;
   index index.html index.htm;
   server_name gf.dev;
   location / {
       try_files $uri $uri/ =404;
   }
}

Observação: Ajuste os valores de root e server_name de acordo com a sua estrutura.

  • Reinicie o Nginx e teste os dois URLs para confirmar que estão funcionando corretamente.

Não se esqueça de atualizar o registro DNS das suas URLs para que apontem para o endereço IP do seu servidor. Após esta etapa, você deverá conseguir acessar seus websites com base nas configurações efetuadas.

Conclusão

Este foi um guia prático para hospedar múltiplos domínios em uma única instância de servidor web, seja ele Apache ou Nginx. Após a implementação, é fundamental realizar testes de segurança para identificar possíveis vulnerabilidades.

Achou este artigo útil? Compartilhe com seus colegas e amigos!