일반 도메인에 Discourse 설치하기

누군가 설명해 주실 수 있을까요? Discourse를 서브도메인이 아닌 일반 도메인에 설치할 수 있다고 흔히 말하는데, 왜 일부 DNS만 이를 지원하는지 궁금합니다. 왜 일부 DNS만 이 기능을 지원하는지 정말로 이해가 안 되고, 문제의 핵심이 무엇인지 도무지 파악이 되지 않습니다. 단순히 기술적으로 어떤 부분이 문제인지 이해하려고 질문하는 것입니다. 미리 감사드립니다!

말씀하신 내용은 호스팅된 Discourse 사이트를 루트 또는 어펙스 도메인(예: example.com)에서 실행하도록 구성하기에 관한 것 같습니다. 이 내용은 Discourse에서 호스팅되는 인스턴스에만 적용됩니다. 개별 단일 인스턴스 호스팅에는 해당하지 않는다고 생각합니다.

문제는 이 호스팅 구성 방식[1]이 일반적으로 설정된 이름이 CNAME 레코드여야 한다는 점입니다. CNAME은 별칭의 일종입니다. C는 "canonical(정식)"을 의미합니다.[2] 예를 들어, 이 사이트인 meta.discourse.org의 레코드는(이 글을 쓰는 시점에서) app-cname-target.cdck-prod-meta.discourse.cloud를 가리키는 CNAME입니다.

DNS 위임 구조가 상위 도메인(예: .org 또는 .com)이 등록자가 설정한 서버로 하위 도메인 요청을 전달하도록 되어 있기 때문에[3] 도메인 _아래_의 호스트명에만 CNAME을 설정할 수 있습니다.

이 한계를 우회하기 위해 여러 DNS 제공업체는 ANAME 레코드 또는 "CNAME flattening"이라고 불리는 기능을 제공합니다. 이 기능은 위임된 “베어(bare)” 또는 “어펙스(apex)” 도메인을 포함한 어떤 레코드와도 정상적으로 작동합니다. 이는 DNS의 진짜 표준 부분이 아니라 DNS 회사가 제공하는 비공개적인 내부 기술이며, 단순히 모든 제공업체가 이 기능을 지원하지는 않습니다.

다만, 다음과 같은 다른 방법도 있습니다:

  • “어펙스” 도메인을 리디렉션하도록 설정합니다. 예를 들어 example.net이 forum.example.net으로 리디렉션되도록 하는 것입니다. 이렇게 하면 사용자는 여전히 긴 이름을 보고 사용하지만, 짧은 이름에서 이동할 수는 있습니다.

그리고 가능하다면 또 다른 옵션:

  • “어펙스” 도메인에 투명한 리버스 프록시를 설정합니다. 이는 복잡하며 CDCK의 구성과 쉽게 호환되는지 확신할 수 없지만, 완전성을 위해 언급합니다.

  1. 참고로 이는 CDCK가 설계 및 구현한 방식이며, 호스팅 자체의 내재적 한계는 아닙니다. ↩︎

  2. 컴퓨팅 분야에서 흔히 쓰이는 "선호되는 공식 이름"이라는 의미입니다. 예를 들어 www.example.org가 serverhost003.example.org를 가리키는 CNAME으로 설정될 수 있지만, 3번 서버가 다운되면 CNAME만 변경하면 됩니다. 흥미롭게도 Merriam-Webster 사전에는 이 의미에 대한 항목이 제대로 없습니다. ↩︎

  3. 사실 이 과정은 계속될 수 있습니다. example.org가 stuff.example.org를 위임할 수 있고, stuff.example.org가 things.stuff.example.org를 위임하는 식으로 이어질 수 있습니다. ↩︎