ojike
(Chk)
10월 12, 2023, 11:09오전
1
도메인 이름 확인 중 . . .
경고: 호스트명 ***.com을 사용하여 컴퓨터의 포트 443에 접근할 수 없는 것으로 보입니다.
경고: http://shoutam.com (포트 80)에 대한 연결도 실패했습니다.
이는 ***.com이 이 discourse를 설치하는 머신에 도달하지 않는 어떤 IP 주소로 해석되고 있음을 시사합니다.
먼저 ***.com이 이 서버의 IP 주소로 해석되는지 확인해야 합니다.
보통 도메인을 구매한 곳에서 이를 확인합니다.
IP 주소가 올바르게 해석된다고 확신이 든다면, 방화벽 문제일 수 있습니다.
“open ports YOUR CLOUD SERVICE”(포트 열기 YOUR CLOUD SERVICE)로 웹 검색을 해보시면 도움이 될 수 있습니다.
이 도구는 가장 표준적인 설치 환경만을 위해 설계되었습니다. 위의 문제를 해결할 수 없다면, 직접 containers/app.yml 파일을 편집한 다음 아래 명령을 입력해야 합니다.
./launcher rebuild app
이 문제를 해결하는 데 도움을 주실 수 있나요? 저는 Cloudflare을 사용하고 있습니다.
Cloudflare를 끄거나, Discourse를 Cloudflare 템플릿을 사용하도록 구성해야 합니다.
pfaffman
(Jay Pfaffman)
10월 12, 2023, 1:50오후
3
하지만 여전히 설치를 할 수 없습니다. Let’s Encrypt는 인증서를 발급하기 위해 포트 80과 443에 대한 직접 접근이 필요하기 때문입니다.
인증서를 발급받고 Discourse를 설치한 후에는, 중간에 Cloudflare를 사용하는 방법(이에는 Cloudflare 템플릿 사용이 포함됨)에 대한 주제를 검색해 볼 수 있습니다.
좋은 지적입니다. 이건 Let’s Encrypt가 아니라 Discourse에서 사용되는 acme.sh 클라이언트인데, 이 클라이언트는 직접적인 접근이 필요합니다. (certbot에는 추가 작업이 필요하지만 이 요구사항을 없애는 DNS 플러그인이 있습니다.) 제가 놓친 이유는, 수년간 제가 배포한 Discourse 설치 환경이 거의 모두 리버스 프록시를 사용해야 했기 때문에 내부 SSL 템플릿이 기본적으로 비활성화되어 있었기 때문입니다.
ojike
(Chk)
10월 12, 2023, 2:53오후
5
클라우드플레어(Cloudflare)에서 사이트를 제거했는데도 동일한 문제가 발생합니다. 다른 해결 방법은 없을까요?
_removed_이 정확히 무엇을 의미하는지는 확실하지 않지만, 보통 DNS가 전파되는 데 몇 시간이 걸립니다. 잠시 기다린 후 다시 시도해 보시는 것이 좋습니다.
Stephen
(Stephen)
10월 12, 2023, 4:23오후
7
여기에는 우리가 더 많은 도움을 드리기 위해 필요한 정보가 상당히 많이 빠져 있습니다.
요즘에는 HTTPS가 strict로 설정되어 있지 않는 한, Cloudflare는 프록시(주황색 구름) 모드에서 실패하지 않습니다. :80(HTTP)과 :443(HTTPS) 포트가 모두 서버로 직접 전달되기 때문입니다.
strict 설정은 :80 포트를 통한 트래픽을 SSL로 리다이렉트하도록 강제하므로, 이로 인해 챌린지(검증)가 실패하게 됩니다.
기초적인 사항을 하나 이상 놓쳤을 가능성이 꽤 높지만, VPS가 어디에 위치해 있는지와 DNS 내에서 무엇을 설정했는지 알려주지 않는 한, 현재 어떤 일이 일어나고 있는지 추측하는 것 이상은 어렵습니다.
일부 제공업체는 VPS와 외부 세계 사이에 ACL을 설정하도록 요구합니다 - 해당 포트가 외부에서 열려 있는지 확인해 보셨나요? DNS에 추가한 ‘a’ 레코드가 할당된 공개 IP 주소를 가리키고 있는지 확실합니까? 방화벽이 존재합니까?
일부 DNS 제공업체의 경우 그렇습니다. 하지만 Cloudflare는 프록시하는 모든 주소에 대해 TTL을 300초로 강제합니다. 이는 변경 후 5분 이내에 모든 상위 DNS 서버가 이전 레코드의 만료 시점이 지나게 된다는 것을 의미합니다.
해당 템플릿은 프록시 모드가 활성화될 때 Cloudflare가 추가하는 추가 헤더 정보에서 올바른 클라이언트 IP를 추출하도록 보장하는 것일 뿐이며, 설치 프로세스와는 직접적인 관련이 없습니다.
pfaffman
(Jay Pfaffman)
10월 14, 2023, 10:47오후
8
Chk:
그럼 다른 방법은 뭐가 있나요?
주황색 구름이 표시된 상태에서 리빌드를 여러 번 실행했다면 Let’s Encrypt의 속도 제한(rate limit)에 걸렸을 가능성이 높습니다. 쉬운 해결 방법은 다른 서브도메인을 사용하거나 일주일 정도 기다리는 것입니다.
ojike
(Chk)
10월 16, 2023, 6:28오후
9
드롭레트를 삭제하고 새로 만들면 해결될까요?
이 문제가 발생하기 전에 디스코스를 성공적으로 설치한 적이 있습니다. 하지만 관리자 이메일에 오류가 있어 해당 드롭레트를 삭제했습니다. 이제 이전에 사용했던 동일한 과정으로 디스코스를 설치하려고 해도 안 되는 것 같습니다.
pfaffman
(Jay Pfaffman)
10월 16, 2023, 6:34오후
10
Chk:
드로플릿을 삭제하고 새로 만들면 작동할까요?
이는 제 설명이 그 원인이 될 가능성이 높다는 것을 시사합니다.
randyp
(Asgards Gate)
2월 5, 2024, 4:43오후
11
전문가분들의 도움이 될 수 있기를 바라며 이 스레드를 다시 살려봅니다.
원래 질문자(OP)와 동일한 오류가 발생하고 있습니다.
현재 Unraid를 사용 중이며, Nginx Proxy Manager가 실행 중인 컨테이너가 있습니다. 방화벽 포트가 설정되어 모든 80/443 포트 트래픽이 제 NPM 컨테이너로 전달되도록 구성되어 있습니다. NPM 컨테이너와 함께 여러 Docker 컨테이너를 성공적으로 설정했으며, 모두 잘 작동하고 있었습니다.
Ubuntu Server VM을 설치하고 초기 설정을 거친 후, VM에 정적 IP를 설정하고 Docker를 설치했으며, Discourse를 다운로드했지만 OP와 마찬가지로 설정 스크립트에서 실패했습니다.
추가 정보를 다음 스레드에 게시했습니다: Discourse installed in UNRAID Ubuntu Server VM behind NPM reverse proxy not resolving hostname
해당 스레드가 방치된 상태이거나, 적어도 진정한 해결책이 도출되지 않은 것 같습니다. 도움을 주시면 감사하겠습니다.
pfaffman
(Jay Pfaffman)
2월 5, 2024, 5:26오후
12
Nginx Proxy Manager를 사용하려면 app.yml 파일을 수동으로 구성해야 합니다. 프록시를 일시적으로 끄고 discourse-setup이 첫 실행을 완료할 수 있도록 한 후(일부 항목은 여전히 수동으로 변경해야 함), samples/standalone.yml 파일을 복사하여 사용할 수 있습니다.
randyp
(Asgards Gate)
2월 5, 2024, 5:49오후
13
네, 제 이해로는 discourse-settup가 실행되고 완료된 후에야 yml 파일들이 생성됩니다. 이를 위해, Discourse를 설치할 Ubuntu VM으로 방화벽의 WAN 트래픽을 임시로 전환한 뒤, 설치가 완료되면 트래픽을 리버스 프록시로 되돌리고 app.yml 파일을 구성하면 될 것 같습니다.
pfaffman
(Jay Pfaffman)
2월 5, 2024, 6:18오후
14
이 부분을 놓치고 있었네요. --skip-connection-test 스위치를 사용하면 해당 테스트를 건너뛰고 실행할 수 있습니다. 포트는 여전히 수동으로 편집해야 하지만, 스크립트를 사용하여 파일을 생성하고 SMTP 자격 증명을 입력하는 데 활용할 수 있습니다.
randyp
(Asgards Gate)
2월 5, 2024, 6:31오후
15
이 정보는 정말 귀중합니다. 한번 시도해볼게요. 잘 되면 이 스레드에 결과를 보고할게요! 다시 한번 감사합니다!