Apache2-Konfiguration - Virtuelle Host-IP auf AWS Linux 2

Apache2-Konfiguration - Virtuelle Host-IP auf 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>


Dies funktioniert, aber wenn ich die Sternchen durch eine URL ersetze, DocumentRooterscheint standardmäßig Folgendes /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


Ich habe kein Problem damit, ein Sternchen zu verwenden, ich möchte nur verstehen, warum ich das in diesem Szenario tun muss.

Antwort1

Dieser Abschnitt definiert nur die IPs, die diesen virtuellen Host erreichen können. In diesem Fall <VirtualHost *:80>bedeutet das, dass Apache allen Netzwerkschnittstellen den Zugriff auf diesen virtuellen Host gestattet. Ich denke, Sie erleben das Verhalten, dass Sie zum Standard-Dokumentstamm gelangen, weil keiner der von Ihnen festgelegten virtuellen Hosts geöffnet ist.

verwandte Informationen