HTTP에서 nginx 페이지가 표시됩니다

안녕하세요! 처음부터 설치를 진행했습니다.

조금 이상한 상황이 발생했는데, ./discourse-setup을 실행했을 때 다음과 같은 메시지가 나타났습니다.

Hostname for your Discourse? [oreillefine.art]: 

Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:  oreillefine.art.
WARNING: Connection to http://oreillefine.art (port 80) also fails.

그 후 app.yml 파일을 수동으로 편집하여 SMTP 설정, Let’s Encrypt 메일 설정 및 HTTPS 사용 템플릿을 추가했습니다.

이어서 ./discourse-doctor를 실행했는데 모든 것이 정상적으로 작동했습니다! 새로운 웹사이트를 볼 수 있었습니다. 그런데… 이제 혼란스럽습니다. HTTP로 제 사이트를 접속하려고 하면(http://oreillefine.art) nginx 기본 페이지가 표시되는데, HTTPS는 정상적으로 작동하며(https://oreillefine.art) Discourse를 볼 수 있습니다. 도움을 주시면 감사하겠습니다!

이 오류는 컴퓨터에 다른 NGINX가 실행 중이어서 Discourse가 포트 443에 접근하지 못하기 때문일 것으로 추정됩니다.

그런데 만약 그렇다면 인증서를 어떻게 발급받았는지 이해가 되지 않습니다.

다른 nginx가 설치되어 있지 않은 것으로 확신합니다. 새 VPS이고 이전에 nginx나 apache를 설치한 적도 없거든요… http와 https의 콘텐츠가 다른 문제에 대해서는 어떤 해결책을 제안해 주실 수 있을까요?

음. 아주 이상하네요. 설명이나 추천할 만한 내용은 없습니다.

아마도 로그 파일을 몇 개 드릴 수 있을까요?

재빌드 중 다음 내용을 확인했습니다:

listen 80;
  return 301 https://$$ENV_DISCOURSE_HOSTNAME$request_uri;
}
server {
 in /etc/nginx/conf.d/discourse.conf
I, [2024-05-10T12:24:54.676331 #1]  INFO -- : (?m-ix:listen 80;\s+gzip on;)을 listen 443 ssl http2;로 교체
SSL_TEMPLATE_SSL_BLOCK
 in /etc/nginx/conf.d/discourse.conf
I, [2024-05-10T12:24:54.677081 #1]  INFO -- : (?m-ix:listen 80;\s+listen \[::\]:80;\s+gzip on;)을 listen 443 ssl http2;
listen [::]:443 ssl http2;
SSL_TEMPLATE_SSL_BLOCK
 in /etc/nginx/conf.d/discourse.conf
I, [2024-05-10T12:24:54.677779 #1]  INFO -- : (?-mix:SSL_TEMPLATE_SSL_BLOCK)을 
ssl_protocols TLSv1.2 TLSv1.3;
으로 교체

예상대로 리디렉션이 정상적으로 작동하는 것 같습니다.

제 추측으로는 DNS 지연이 있었고, 해당 호스트명이 설정되지 않은 NGINX 서버가 실행 중이던 다른 서버를 가리키고 있었기 때문일 것 같습니다.