Instalé Apache en mi instancia EC2 para servir mi sitio web. Compré el dominio para el sitio web de GoDaddy.
Para servir el sitio web en una instancia EC2 alojada en AWS, creé una zona alojada en Route53 para el dominio comprado en GoDaddy.
Actualicé los servidores de nombres que obtuve después de crear la zona alojada en Route53 en el Panel DNS de GoDaddy.
Después de esta actualización del servidor de nombres, creé un registro A en la zona alojada de Route53 que apunta a la IP pública de la instancia EC2 creada para servir a mi sitio web.
Pero aún así, no puedo acceder a mi sitio web servido en la instancia EC2 usando Apache a través del dominio.
Actualicé los servidores de nombres en el Panel de GoDaddy el lunes (26 de febrero de 2024) y han pasado casi 2 días desde la actualización, pero el sitio web aún no se ofrece en el dominio previsto.
Aquí está mi archivo de configuración de Apache:
<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
No puedo entender por qué el sitio web no funciona a pesar de realizar todas las tareas necesarias.
Respuesta1
La configuración de Apache solo está configurada para HTTP (80) y los navegadores intentan conectarse a través de HTTPS (443).
Su mejor solución es comprar un certificado SSL e instalarlo en el servidor. Puede realizar la prueba con un certificado SSL autofirmado.
Comprobando la propagación de DNS enComprobador de DNSmuestra el DNS propagado correctamente; todos los nodos apuntan a la dirección de destino:
3.110.225.226
Probé más a fondo su sitio ejecutando el siguiente comando Curl; y rápidamente devolvió encabezados de respuesta limpios a través de HTTP básico:
curl -ILk http://test.instabook.app
Lo que resulta en esto:
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
Perosiemprese cuelga hasta que se agota el tiempo de espera si uso HTTPS:
curl -ILk https://test.instabook.app
Se cuelga un rato y luego vuelve:
curl: (28) Failed to connect to test.instabook.app port 443: Operation timed out
Lo más probable es que el problema sea que su navegador esté intentando forzar HTTPS cuando solo está ejecutando el servidor (actualmente) en HTTP.
Su mejor solución es comprar un certificado SSL e instalarlo en el servidor. Puede probar la configuración de Apache con un certificado SSL autofirmado; pero obtenga un certificado real para su sitio.