🌐 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:
🔧 Passo 1 – Organize suas aplicações
Implante cada aplicação em um diretório separado, como no exemplo:
📄 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
eCustomLog
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:
Com a aba de addons aberta, realize a instalação do Let's Encrypt:
Durante a instalação do Addon, será exibida a tela do SSL, por lá, adicione os domínios que deseja configurar o acesso HTTPS:
📦 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:
✅ Verificação
-
Acesse
http://app1.seudominio.com
ouhttps://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: