¿Cómo agrego un segundo host virtual a la configuración de un servidor Apache?

¿Cómo agrego un segundo host virtual a la configuración de un servidor Apache?

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.confpara 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.confy 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.htmlarchivo 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-2y 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.htmlarchivo de muestra que coloqué debajo /var/www/site-2:

ingrese la descripción de la imagen aquí

También vale la pena señalar que el favicon de site-2es en realidad el favicon de site-1. No estoy seguro de por qué. Además, el directorio/permisos de archivo/propiedad site-2es 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-2apunta al var/www/htmldirectorio. Si coloco un index.htmlarchivo 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.

información relacionada