프로덕션 환경에서 Discourse와 로드 밸런서를 함께 사용하려면 도메인 두 개가 필요한가요?

로드 밸런서 사용에 대해 잘 알고 있지는 않지만, 이번에는 정말로 로드 밸런서를 사용해야 합니다.

제 웹사이트가 badthreadcomments.com이라고 가정해 보겠습니다. 사용자가 제 사이트에 접속할 때마다 요청은 VPS에 구성된 제 로드 밸런서로 전송됩니다. 이 로드 밸런서는 요청을 같은 VPS에 호스팅된 Discourse로 전달해야 하고, 그러면 Discourse가 제 로드 밸런서에 응답합니다. 하지만 아, Discourse를 프로덕션 환경에서 사용하는 방법에 대한 문서에는 다음과 같이 적혀 있습니다:
“Discourse는 IP 주소로는 작동하지 않으며, 진행하려면 example.com과 같은 도메인 이름을 소유해야 합니다.”

로드 밸런서와 Discourse가 같은 VPS에 호스팅되므로, 제 로드 밸런서와 Discourse 간의 통신은 100% 로컬에서 이루어집니다. 그렇다면 프로덕션 환경에서 도메인이 필요하다면 저는 어떻게 해야 할까요? 여기서 계획은 무엇인가요? 두 번째 도메인을 구매해야 하나요? 두 번째 도메인이 필요하다면, 이것이 클라이언트에 추가적인 지연(latency)을 유발하지는 않을까요?

즉, 클라이언트는 도메인 이름을 통해 Discourse에 접근해야 한다는 뜻입니다. 최종 고객 대역 리버스 프록시/로드 밸런서 뒤의 내부에서는 원하는 대로 설정할 수 있습니다.

그러면 순서는 이렇게 되어야 하나요?
badthreadcomments.com > Discourse Docker > 로드 밸런서 > 응답

이렇게는 안 되나요?
badthreadcomments.com > 로드 밸런서 > Discourse Docker > 응답

"마지막 고객 대면 리버스 프록시/로드 밸런서 내부에서는 원하는 대로 할 수 있다"는 말씀이 무슨 뜻인지 이해가 되지 않습니다.

이 점에서 Discourse는 다른 웹 애플리케이션과 다를 바가 없습니다

graph TD
    User[사용자]
    LoadBalancer[로드 밸런서]
    WebAppCluster[Discourse 웹 애플리케이션 클러스터, 동일한 N개 인스턴스]
    Postgres[PostgreSQL]
    Redis[Redis]
    S3[오브젝트 스토리지]

    User -->|요청| LoadBalancer
    LoadBalancer -->|요청 분배| WebAppCluster
    WebAppCluster -->|읽기/쓰기| Postgres
    WebAppCluster -->|캐시| Redis
    WebAppCluster -->|정적 자산 저장| S3

더 넓은 관점에서 이해하려면 Nginx Proxy Manager를 살펴보고 그 작동 방식을 알아보는 것을 추천합니다.