Apache 및 Route 53을 사용하여 내 도메인에 호스팅된 웹 사이트에 액세스할 수 없는 이유는 무엇입니까?

Apache 및 Route 53을 사용하여 내 도메인에 호스팅된 웹 사이트에 액세스할 수 없는 이유는 무엇입니까?

웹 사이트를 제공하기 위해 EC2 인스턴스에 Apache를 설치했습니다. GoDaddy에서 웹사이트용 도메인을 구입했습니다.

AWS 호스팅 EC2 인스턴스에서 웹 사이트를 제공하기 위해 GoDaddy에서 구입한 도메인에 대해 Route53에 호스팅 영역을 생성했습니다.

GoDaddy DNS 패널의 Route53에 호스팅 영역을 생성한 후 얻은 네임서버를 업데이트했습니다.

이 네임서버 업데이트 후에 웹 사이트 제공을 위해 생성된 EC2 인스턴스의 퍼블릭 IP를 가리키는 Route53의 호스팅 영역에 A 레코드를 생성했습니다.

하지만 여전히 도메인을 통해 Apache를 사용하여 EC2 인스턴스에서 제공되는 웹 사이트에 액세스할 수 없습니다.

여기에 이미지 설명을 입력하세요

월요일(2024년 2월 26일)에 GoDaddy 패널의 네임서버를 업데이트했으며 업데이트 후 거의 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

문제는 아마도 현재 HTTP의 일반 서버에서만 서버를 실행하고 있을 때 브라우저가 HTTPS를 강제로 시도하고 있다는 것입니다.

가장 좋은 해결책은 SSL 인증서를 구입하여 서버에 설치하는 것입니다. 자체 서명된 SSL 인증서를 사용하여 Apache 설정을 테스트할 수 있습니다. 하지만 귀하의 사이트에 대한 실제 인증서를 받으시기 바랍니다.

관련 정보