Tengo un servidor Apache ejecutándose en una instancia AWS EC2. Actualmente, un host virtual se está ejecutando correctamente en el servidor y quiero agregar un segundo host/dominio virtual, pero no sé cómo hacerlo funcionar.
Al anonimizar los datos, aquí está la información original que agregué httpd.conf
para ejecutar el primer host virtual:
<Directory "/var/www/site-1/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/var/www/site-1/public"
ServerName "site-1.com"
ServerAlias "*.site-1.com"
RewriteEngine on
RewriteCond %{SERVER_NAME} =site-1.com [OR]
RewriteCond %{SERVER_NAME} =*.site-1.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Luego tengo lo siguiente registrado en Google Domains site-1
(con una dirección IP falsa):
Host name Type TTL Data
site-1.com A 1 hour 4.184.56.145
*.site-1.com A 1 hour 4.184.56.145
Luego utilicé Certbot para agregar un certificado SSL, que agregó la siguiente línea httpd.conf
y un desafío ACME a la configuración de DNS de Google Domains:
Include /etc/httpd/conf/httpd-le-ssl.conf
Esta todo trabajando bien. Luego compré un segundo dominio ( site-2.com
) y, por ahora, sólo estoy intentando ejecutar el host virtual con un index.html
archivo muy simple en la raíz del directorio del sitio (es decir, /var/www/site-2
).
Para eso, agregué lo siguiente al final de httpd.conf
:
<Directory "/var/www/site-2">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/var/www/site-2"
ServerName "site-2.com"
</VirtualHost>
Y se agregaron las siguientes configuraciones de DNS a Google Domains para site-2
:
Host name Type TTL Data
site-2.com A 1 hour 4.184.56.145
Han pasado varias horas desde que se agregaron todas estas configuraciones site-2
y reinicié el servidor Apache varias veces con sudo systemctl restart httpd
. Sin embargo, cuando voy a site-2.com
, aparece la siguiente página, que no es el index.html
archivo de muestra que coloqué debajo /var/www/site-2
:
También vale la pena señalar que el favicon de site-2
es en realidad el favicon de site-1
. No estoy seguro de por qué. Además, el directorio/permisos de archivo/propiedad site-2
es el mismo que para site-1
.
¿Alguien puede darnos alguna idea de por qué esto no funciona? Por si sirve de algo, después de investigar un poco, pensé que tenía que agregar la siguiente línea a httpd.conf
, pero hacerlo y reiniciar el servidor no hace ninguna diferencia:
NameVirtualHost *:80
Editar: Acabo de descubrir algo. Por alguna razón, site-2
apunta al var/www/html
directorio. Si coloco un index.html
archivo de muestra en ese directorio, se carga correctamente cuando voy a site-2.com. ¿Porqué es eso? ¿Por qué no funciona el siguiente bloque de host virtual?
<VirtualHost *:80>
DocumentRoot "/var/www/site-2"
ServerName "site-2.com"
</VirtualHost>
Respuesta1
Sinceramente, no sé cuál es el problema, pero acaba de empezar a funcionar. Tal vez fue un problema de propagación de DNS (no estoy seguro), pero la configuración que enumeré en mi pregunta original comenzó a funcionar.