Wie füge ich einer Apache-Serverkonfiguration einen zweiten virtuellen Host hinzu?

Wie füge ich einer Apache-Serverkonfiguration einen zweiten virtuellen Host hinzu?

Ich habe einen Apache-Server, der auf einer AWS EC2-Instanz läuft. Derzeit läuft ein virtueller Host erfolgreich auf dem Server, und ich möchte einen zweiten virtuellen Host/eine zweite Domäne hinzufügen, weiß aber nicht, wie ich das zum Laufen bekomme.

Nach der Anonymisierung der Daten sind hier die ursprünglichen Informationen, die ich hinzugefügt habe, httpd.confum den ersten virtuellen Host zum Laufen zu bringen:

<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>

Ich habe dann bei Google Domains folgendes registriert für site-1(mit einer gefälschten IP-Adresse):

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

Anschließend habe ich Certbot verwendet, um ein SSL-Zertifikat hinzuzufügen, das die folgende Zeile httpd.confund eine ACME-Herausforderung zu den DNS-Einstellungen von Google Domains hinzugefügt hat:

Include /etc/httpd/conf/httpd-le-ssl.conf

Das funktioniert alles gut. Ich habe dann eine zweite Domain gekauft ( site-2.com) und versuche jetzt nur, den virtuellen Host mit einer sehr einfachen index.htmlDatei im Stammverzeichnis des Site-Verzeichnisses (d. h. /var/www/site-2) zum Laufen zu bringen.

Aus diesem Grund habe ich ganz unten Folgendes hinzugefügt 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>

Und die folgenden DNS-Einstellungen wurden zu Google Domains hinzugefügt für site-2:

Host name     Type  TTL      Data
site-2.com    A     1 hour   4.184.56.145

Es sind mehrere Stunden vergangen, seit alle diese Einstellungen für hinzugefügt wurden site-2, und ich habe den Apache-Server mehrmals mit neu gestartet sudo systemctl restart httpd. Wenn ich jedoch zu gehe site-2.com, erhalte ich die folgende Seite, die nicht die Beispieldatei ist, die index.htmlich unter abgelegt habe /var/www/site-2:

Bildbeschreibung hier eingeben

Es ist auch erwähnenswert, dass das Favicon für site-2eigentlich das Favicon für ist site-1. Ich weiß nicht genau, warum. Darüber hinaus sind die Verzeichnis-/Dateiberechtigungen/Eigentümerschaft für site-2dieselben wie für site-1.

Kann jemand eine Idee haben, warum das nicht funktioniert? Nachdem ich ziemlich viel recherchiert hatte, dachte ich, ich müsste die folgende Zeile hinzufügen httpd.conf, aber das macht keinen Unterschied, wenn ich das tue und den Server neu starte:

NameVirtualHost *:80

Bearbeiten: Ich habe gerade etwas herausgefunden. Aus irgendeinem Grund site-2verweist es auf das var/www/htmlVerzeichnis. Wenn ich eine Beispieldatei index.htmlin dieses Verzeichnis lege, wird sie korrekt geladen, wenn ich zu site-2.com gehe. Warum ist das so? Warum funktioniert der folgende virtuelle Hostblock nicht?

<VirtualHost *:80>
    DocumentRoot "/var/www/site-2"
    ServerName "site-2.com"
</VirtualHost>

Antwort1

Ehrlich gesagt weiß ich nicht, was los ist, aber es hat gerade angefangen zu funktionieren. Vielleicht war es ein DNS-Verbreitungsproblem (nicht sicher), aber die Konfiguration, die ich in meiner ursprünglichen Frage aufgeführt habe, hat angefangen zu funktionieren.

verwandte Informationen