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.conf
um 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.conf
und 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.html
Datei 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.html
ich unter abgelegt habe /var/www/site-2
:
Es ist auch erwähnenswert, dass das Favicon für site-2
eigentlich das Favicon für ist site-1
. Ich weiß nicht genau, warum. Darüber hinaus sind die Verzeichnis-/Dateiberechtigungen/Eigentümerschaft für site-2
dieselben 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-2
verweist es auf das var/www/html
Verzeichnis. Wenn ich eine Beispieldatei index.html
in 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.