안녕하세요!
여러 개의 서로 다른 포럼이 필요하고, 이 포럼 구성이 시간이 지남에 따라 유연하게 변경될 수 있어야 하는 환경에서 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: 헤더를 조작하는 같은 트릭도 시도해 보았지만, 효과가 없었습니다. 여러 포럼이 이상하게 섞인 결과를 얻었습니다.
따라서: 이것을 깔끔하게 처리할 방법이 있을까요? 멀티사이트처럼 웹 컨테이너를 하나만 사용하는 것으로 충분할까요? 아니면 두 번째 웹 컨테이너를 사용해야 할까요? 두 컨테이너가 서로를 알지 못한 채 동일한 데이터 컨테이너를 가리키게 될 경우, 그렇게 하면 문제가 생길까요? 아니면 제 접근 방식이 완전히 틀린 걸까요?