Почему я не могу получить доступ к веб-сайту, размещенному на моем домене, с помощью Apache и Route 53?

Почему я не могу получить доступ к веб-сайту, размещенному на моем домене, с помощью Apache и Route 53?

Я установил Apache на своем экземпляре EC2 для обслуживания своего веб-сайта. Я купил домен для веб-сайта у GoDaddy.

Для обслуживания веб-сайта на размещенном на AWS экземпляре EC2 я создал размещенную зону в Route53 для приобретенного у GoDaddy домена.

Я обновил серверы имен, которые получил после создания размещенной зоны в Route53 в панели DNS GoDaddy.

После этого обновления сервера имен я создал запись A в размещенной зоне Route53, указывающую на публичный IP-адрес экземпляра EC2, созданного для обслуживания моего веб-сайта.

Но я по-прежнему не могу получить доступ к своему веб-сайту, размещенному на экземпляре EC2, с использованием Apache через домен.

введите описание изображения здесь

Я обновил серверы имен в панели GoDaddy в понедельник (26 февраля 2024 г.). С момента обновления прошло уже почти 2 дня, но веб-сайт по-прежнему не обслуживается на предполагаемом домене.

Вот мой файл конфигурации 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

Я не могу понять, почему сайт не обслуживается, несмотря на выполнение всех необходимых задач.

решение1

Конфигурация Apache настроена только на HTTP (80), а браузеры пытаются подключиться через HTTPS (443).

Лучшим решением будет приобрести SSL-сертификат и установить его на сервере. Вы можете протестировать его с помощью самоподписанного SSL-сертификата.

Проверка распространения DNS наDNS-проверкапоказывает, что DNS правильно распространен; все узлы указывают на адрес назначения:

3.110.225.226

Я дополнительно протестировал ваш сайт, выполнив следующую команду Curl; и она быстро вернула чистые заголовки ответа через базовый HTTP:

curl -ILk http://test.instabook.app

Что приводит к следующему:

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

Но этовсегдазависает до истечения времени ожидания, если я использую HTTPS:

curl -ILk https://test.instabook.app

Зависает надолго, а затем возвращается:

curl: (28) Failed to connect to test.instabook.app port 443: Operation timed out

Проблема, скорее всего, в том, что ваш браузер пытается принудительно включить HTTPS, когда сервер (в настоящее время) работает только на обычном HTTP.

Лучшим решением будет приобрести сертификат SSL и установить его на сервере. Вы можете протестировать настройку Apache с помощью самоподписанного сертификата SSL; но, пожалуйста, получите настоящий сертификат для своего сайта.

Связанный контент