Ich habe Apache auf meiner EC2-Instanz installiert, um meine Website bereitzustellen. Die Domain für die Website habe ich bei GoDaddy gekauft.
Um die Website auf einer von AWS gehosteten EC2-Instanz bereitzustellen, habe ich in Route53 eine gehostete Zone für die von GoDaddy gekaufte Domäne erstellt.
Ich habe die Nameserver aktualisiert, die ich nach dem Erstellen der gehosteten Zone in Route53 im GoDaddy DNS-Panel erhalten habe.
Nach dieser Nameserver-Aktualisierung habe ich in der gehosteten Zone von Route53 einen A-Eintrag erstellt, der auf die öffentliche IP der EC2-Instanz verweist, die zum Bereitstellen meiner Website erstellt wurde.
Ich kann jedoch immer noch nicht über die Domäne mit Apache auf meine Website zugreifen, die auf der EC2-Instanz bereitgestellt wird.
Ich habe die Nameserver am Montag (26. Februar 2024) im GoDaddy-Panel aktualisiert. Seit der Aktualisierung sind fast zwei Tage vergangen, aber die Website wird immer noch nicht auf der vorgesehenen Domain bereitgestellt.
Hier ist meine Apache-Konfigurationsdatei:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
ServerName test.instabook.app
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
RewriteEngine on
RewriteCond %{SERVER_NAME} =test.instabook.app
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ich verstehe nicht, warum die Website trotz Ausführung aller erforderlichen Aufgaben nicht bereitgestellt wird.
Antwort1
Die Apache-Konfiguration ist nur auf HTTP (80) eingestellt und Browser versuchen, eine Verbindung über HTTPS (443) herzustellen.
Ihre beste Lösung besteht darin, ein SSL-Zertifikat zu kaufen und es auf dem Server zu installieren. Sie können es mit einem selbstsignierten SSL-Zertifikat testen.
Überprüfen der DNS-Verbreitung aufDNS-Checkerzeigt, dass der DNS ordnungsgemäß propagiert wurde; alle Knoten verweisen auf die Zieladresse:
3.110.225.226
Ich habe Ihre Site weiter getestet, indem ich den folgenden Curl-Befehl ausgeführt habe. Dieser hat schnell saubere Antwortheader über einfaches HTTP zurückgegeben:
curl -ILk http://test.instabook.app
Das Ergebnis ist:
HTTP/1.1 200 OK
Date: Thu, 29 Feb 2024 04:14:16 GMT
Server: Apache/2.4.52 (Ubuntu)
Last-Modified: Wed, 28 Feb 2024 11:33:38 GMT
ETag: "1268-6126f83916814"
Accept-Ranges: bytes
Content-Length: 4712
Vary: Accept-Encoding
Content-Type: text/html
Aber esstetshängt bis zum Timeout, wenn ich HTTPS verwende:
curl -ILk https://test.instabook.app
Bleibt eine lange Zeit hängen und gibt dann zurück:
curl: (28) Failed to connect to test.instabook.app port 443: Operation timed out
Das Problem besteht höchstwahrscheinlich darin, dass Ihr Browser versucht, HTTPS zu erzwingen, wenn Sie den Server (derzeit) nur auf reinem HTTP ausführen.
Ihre beste Lösung besteht darin, ein SSL-Zertifikat zu erwerben und es auf dem Server zu installieren. Sie können das Apache-Setup mit einem selbstsignierten SSL-Zertifikat testen. Bitte besorgen Sie sich jedoch ein echtes Zertifikat für Ihre Site.