Pular para o conteúdo principal

🌐 Configuração de VirtualHost no Apache (HTTP e HTTPS)

⚠️ Todas as configurações demonstradas neste manual são exemplos simples e hipotéticos. Pode ser necessário realizar adaptações conforme a topologia e estrutura do seu ambiente.

Este guia mostra como configurar múltiplas aplicações em um único servidor Apache utilizando arquivos de VirtualHost, com suporte a HTTP e HTTPS na SaveinCloud.


✅ Requisitos prévios

Antes de iniciar a configuração:

  • A instância Apache deve possuir um IP público ou os domínios/subdomínios precisam estar vinculados ao ambiente e apontados com CNAME para o hostname correto.

  • As aplicações devem estar em diretórios distintos dentro de /var/www/webroot/.

    Por exemplo: imagem


🔧 Passo 1 – Organize suas aplicações

Implante cada aplicação em um diretório separado, como no exemplo: imagem


📄 Passo 2 – Crie os arquivos de VirtualHost

Crie um arquivo .conf para cada aplicação dentro do diretório:


/etc/httpd/conf.d/

Exemplo:


touch /etc/httpd/conf.d/app1.seudominio.com.conf

📝 O uso da extensão .conf é obrigatório para que o Apache consiga identificar e carregar o arquivo.


🌍 Passo 3 – Configuração básica HTTP

Edite cada arquivo .conf com a seguinte estrutura:


<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /var/www/webroot/app1

ServerName app1.seudominio.com



ErrorLog logs/app1.seudominio.com-error_log

CustomLog logs/app1.seudominio.com-access_log combined

</VirtualHost>

🔁 Altere:

  • DocumentRoot para o caminho correto da aplicação.
  • ServerName, ErrorLog e CustomLog para refletirem seu domínio.

🔐 Passo 4 – Instalação do SSL com Let's Encrypt (HTTPS)

Certifique-se de que os domínios/subdomínios estão apontados corretamente (tipo A para IP público ou tipo CNAME para o host do ambiente).

Em seguida, acesse a aba de Addons da plataforma:

imagem

Com a aba de addons aberta, realize a instalação do Let's Encrypt:

imagem

Durante a instalação do Addon, será exibida a tela do SSL, por lá, adicione os domínios que deseja configurar o acesso HTTPS:

imagem


📦 Passo 5 – Configuração do VirtualHost HTTPS

Após instalar o SSL, copie o conteúdo do bloco <VirtualHost *:443> do arquivo:


/etc/httpd/conf.d/ssl.conf

Cole o conteúdo nos arquivos .conf criados no Passo 2 e edite conforme o exemplo:


<VirtualHost *:443>

DocumentRoot /var/www/webroot/app1

ServerName app1.seudominio.com



ErrorLog /var/log/httpd/app1.seudominio.com.ssl-error.log

CustomLog /var/log/httpd/app1.seudominio.com.ssl-access.log combined



SSLEngine on

Protocols h2 http/1.1

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384

SSLHonorCipherOrder off

SSLSessionTickets off

SSLCertificateFile /var/lib/jelastic/SSL/jelastic.crt

SSLCertificateKeyFile /var/lib/jelastic/SSL/jelastic.key

SSLCACertificateFile /var/lib/jelastic/SSL/jelastic-ca.crt



<IfModule headers_module>

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Header always set Expect-CT "max-age=3600, enforce"

</IfModule>

</VirtualHost>


🔁 Passo 6 – Reinicie o Apache

Após editar todos os arquivos .conf, reinicie o serviço Apache:

imagem


✅ Verificação

  • Acesse http://app1.seudominio.com ou https://app1.seudominio.com.

  • Certifique-se de que o conteúdo correto está sendo exibido para cada aplicação.


🛠️ Troubleshooting

❌ Domínio não acessível

  • Verifique o apontamento DNS.

  • Confirme se o arquivo .conf está correto e foi salvo.

❌ HTTPS não funciona

  • Verifique se o certificado SSL foi corretamente emitido.

  • Confirme se o bloco <VirtualHost *:443> está presente no .conf.


📘 Documentação complementar: