멀티사이트 설치 ... 하위 디렉터리에서?

안녕하세요!

여러 개의 서로 다른 포럼이 필요하고, 이 포럼 구성이 시간이 지남에 따라 유연하게 변경될 수 있어야 하는 환경에서 Discourse를 설정하고 있습니다. (네, 여러 포럼이 필요합니다. 각 포럼은 서로 다른 커뮤니티를 대상으로 합니다.)

해결책은 멀티사이트(multi-site) 설치인 것 같으며, 실제로 작동하도록 설정했습니다. 현재 Multisite configuration with Docker 에 설명된 대로 데이터 컨테이너와 웹 컨테이너를 분리한 멀티사이트 구성이 정상적으로 작동하고 있습니다. (두 개의 호스트명, 즉 $hostname.$domain과 discourse.$domain을 사용했으며, 지금까지 테스트에서는 문제가 없었습니다.)

하지만 문제가 있습니다. DNS에 대한 쉬운 제어 권한이 없어서 여러 개의 “실제” 호스트명을 쉽게 추가할 수 없습니다. 지금까지 확인한 모든 문서는 멀티사이트에 이것이 필요하다고 제안하고 있으며, 멀티사이트 지원이 구현된 메커니즘을 빠르게 살펴본 결과 실제로 그런 것 같습니다.

제 이상적인 구성은 각 포럼이 자체 서브디렉토리에 위치하는 것입니다. 즉, discourse.$domain/forum1, …, discourse.$domain/forumN과 같이요. 그리고 이상적으로는 기존 멀티사이트 메커니즘처럼 하나의 웹 컨테이너에서 이러한 포럼들을 서빙하는 것이 가장 좋습니다.

경험적으로 Serve Discourse from a subfolder (path prefix) instead of a subdomain 에 따라 “기본” 포럼을 서브디렉토리로 옮기면 discourse.$domain/forum으로 성공적으로 이동할 수 있습니다. 하지만 이는 웹 컨테이너를 해당 서브디렉토리에 정확히 묶어두는 것 같으며, 제 실험 결과 멀티사이트 기능을 심각하게 깨뜨립니다.

호스트의 프론트엔드 웹 서버의 경로에 기반하여 웹 컨테이너로 들어가는 Host: 헤더를 조작하는 같은 트릭도 시도해 보았지만, 효과가 없었습니다. 여러 포럼이 이상하게 섞인 결과를 얻었습니다.

따라서: 이것을 깔끔하게 처리할 방법이 있을까요? 멀티사이트처럼 웹 컨테이너를 하나만 사용하는 것으로 충분할까요? 아니면 두 번째 웹 컨테이너를 사용해야 할까요? 두 컨테이너가 서로를 알지 못한 채 동일한 데이터 컨테이너를 가리키게 될 경우, 그렇게 하면 문제가 생길까요? 아니면 제 접근 방식이 완전히 틀린 걸까요?

현재 멀티사이트와 서브폴더를 동시에 지원하지 않습니다. 향후 고객이 원할 경우 고려해 볼 수 있는 부분이며, 상당한 개발 노력이 필요할 것으로 예상됩니다.

모두 동일한 기본 도메인을 사용하는 경우, *.forum.example.com을 사용하는 것이 제 우회 방법입니다. 이렇게 하면 DNS 항목 하나만 있으면 됩니다.

둘 다 감사합니다! 불행히도 지금은 star-subdomain을 설정할 수 없을 것 같아서, 멀티사이트 없이 여러 웹 프론트엔드 컨테이너를 사용하는 방향으로 가야 할 것 같습니다. (이걸 미리 알았더라면 star-subdomain을 확보하도록 추진했을 텐데요.)

물론 멀티사이트/서브폴더 지원이 구현되기를 바라고 있습니다. (가능성이 낮긴 하지만) 시간이 좀 남게 되면 이 부분을 직접 살펴볼 수도 있을 것 같습니다.