기본 Digital Ocean 설치 실패: 포트 443에 접근할 수 없음

안녕하세요, 기본 Discourse/DigitalOcean 가이드를 따라 해보고 있습니다: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

드디어 실행에 성공하기까지 포트 설정 때문에 몇 시간(10시간 이상)을 허비했습니다. 그 다음에는 메일 시스템, SMTP, DNS, SSH 등 너무 많은 것들을 이해해야 했습니다. 결국 작동은 시켰지만…

그리고 저는 (바보같이) 이제 모든 것을 이해했으니 새로운 드롭렛에서 처음부터 다시 시작하고 싶었습니다. (잘했죠?) 그리고 바보같이 드롭렛을 삭제해 버렸습니다. 이제 다시 만들어 보려고 하는데 계속 이 에러가 나옵니다.

제 문제를 설명하자면, 새로운 DigitalOcean 드롭렛(메일 서버 설정 전)에서 시작할 때:

(a) 가이드를 따르는 경우, discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup

또는
(b) 새로운 드롭렛을 위한 DigitalOcean 이미지 마켓플레이스에서 Discourse 이미지를 선택하는 경우. 그런 다음 드롭렛에 SSH로 접속하면 자동 설정이 실행되기 시작합니다.

이 프롬프트 Hostname for your Discourse? [discourse.example.com]:에 서브도메인을 입력한 직후
아래와 같은 메시지가 나타납니다:

WARNING: Port 443 of computer does not appear to be accessible using hostname:  forum.example.com
WARNING: Connection to http://forum.example.com (port 80) also fails.

저는 드롭렛에 아무것도 건드리지 않았고, 원래 설정 그대로입니다. 기본 설정이 제대로 작동하지 않는 것 같습니다. 가이드가 작성된 이후 DigitalOcean 쪽에서 무언가 변경된 건지 모르겠네요.

Cloudflare에 대한 다른 게시물들을 보았지만, 제 생각에는 Cloudflare 서비스를 사용하지 않고 있습니다.

ufw를 사용하여 포트를 열어야 한다는 게시물들을 봅니다. 첫 번째 드롭렛에서는 이렇게 했고, 열어야 한다는 제안(22, 80, 8080, 8000, 2222, 443 등)을 찾아서 모든 포트를 연 끝에 결국 작동시켰습니다. 하지만 어쨌든 가이드에는 포트를 열어야 한다는 필요성을 반영하도록 업데이트가 필요하다고 생각합니다. 그리고 (이전 드롭렛의 경우) 포트를 경청하도록 apache2 같은 것이 필요했을 수도 있습니다. 하지만 너무 많은 에러를 보느라 눈이 아파서 이전 해결책을 찾을 수가 없습니다.

어떤 포트가 열려 있어야 하고 어떤 포트는 그럴 필요가 없는지 이해하고 계신지, 그리고 제 문제를 해결해 주실 수 있는지, 그리고 기본 가이드에 대한 수정 사항을 제안해 주실 수 있는지 궁금합니다.

감사합니다!

저는 (마켓플레이스 드롭렛 이미지)로 ufw를 사용하여 설정을 실행하고 여러 포트를 열었습니다. 그중 일부는 중복된 것 같다고 추측하고 있습니다…

이 가이드가 도움이 되었습니다:

제가 실행한 내용은 다음과 같습니다:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22
sudo ufw allow 2222
sudo ufw enable
sudo ufw allow http
sudo ufw allow 80
sudo ufw allow https
sudo ufw allow 443

ufw status를 실행하면
다음과 같은 결과가 나옵니다:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
5000/tcp                   ALLOW       Anywhere
50010                      ALLOW       Anywhere
2222                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
5000/tcp (v6)              ALLOW       Anywhere (v6)
50010 (v6)                 ALLOW       Anywhere (v6)
2222 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

에러 메시지를 보내 주시겠어요?

새 드롭렛을 가리키는 DNS A 레코드를 생성하지 않은 것 같습니다.

WARNING: Port 443 of computer does not appear to be accessible using hostname:  forum.example.com
WARNING: Connection to http://forum.example.com (port 80) also fails.

@OverseersMight1 위와 같은 오류 메시지가 표시되었고, 이후 설정이 진행되지 않았습니다.

@pfaffman DNS 레코드가 있었는데, TTL이 너무 높게 설정되어 변경 사항이 반영되지 않았을 가능성이 있습니다(다른 사용자들에게도 관련될 수 있음). TTL을 최소값인 600으로 설정했는데, 이것이 도움이 되었을 것으로 추정됩니다.

가이드에는 "* 도메인 이름을 구매한 곳에서 DNS 설정에 접근할 수 있어야 합니다. DNS 제어 패널에서 discourse.example.com 호스트명을 위한 DNS A 레코드를 생성하여, Discourse를 설치 중인 클라우드 인스턴스의 IP 주소를 가리키도록 하십시오."라고 되어 있으며, 저는 그렇게 했습니다.

아마도 그렇지 않을 것 같거나, 말씀하신 대로 전파(propagation) 문제일 수도 있습니다. 호스트명과 드롭렛의 IP 주소를 모르면 확인해 드릴 수 없습니다.