Configuración de Apache2: IP de host virtual en AWS Linux 2

Configuración de Apache2: IP de host virtual en AWS Linux 2

/etc/httpd/conf.d/vhosts.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/main-repo-dir"
    ServerName example.io
    ErrorLog "logs/example.io-error_log"
    CustomLog "logs/example.io-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
    ServerName dev.example.io
    ErrorLog "logs/dev.example.io-error_log"
    CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>


Esto funciona, pero cuando reemplazo los asteriscos con una URL, DocumentRootel valor predeterminado es /var/www/html:

<VirtualHost example.io:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/main-repo-dir"
    ServerName example.io
    ErrorLog "logs/example.io-error_log"
    CustomLog "logs/example.io-access_log" common
</VirtualHost>

<VirtualHost dev.example.io:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
    ServerName dev.example.io
    ErrorLog "logs/dev.example.io-error_log"
    CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>


/etc/hosts:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6

127.0.0.1   example.io
127.0.0.1   dev.example.io


Estoy de acuerdo con usar un asterisco, solo me gustaría entender por qué tengo que hacerlo en este escenario.

Respuesta1

Esa sección solo define las ips que pueden llegar a ese host virtual. En este caso, esto <VirtualHost *:80>significa que Apache permitirá que todas las interfaces de red accedan a ese host virtual. El comportamiento que creo que estás experimentando es que estás accediendo a la raíz del documento predeterminada, porque ninguno de los hosts virtuales que configuraste está abierto.

información relacionada