1개 VPS에 Discourse 포럼을 1개 이상 호스팅하는 방법?

안녕하세요! 하나의 VPS에 Discourse를 하나 이상 호스팅할 수 있는지 궁금합니다. 초보자이므로, 단계별로 명확하게 설명해 주실 수 있을까요? 감사합니다.

네, 가능합니다!

다만, 이는 고급 주제이므로 다음 기본 개념을 알고 있어야 합니다:

  • 리버스 프록시란 무엇인가요?
  • 어떤 리버스 프록시를 사용해야 하나요?
  • 리버스 프록시에서 가상 호스트를 어떻게 구성하나요?
  • 웹 애플리케이션으로 리버스 프록시 역할을 하는 가상 호스트를 어떻게 구성하나요?
  • 웹 애플리케이션을 리버스 프록시와 함께 작동하도록 어떻게 구성하나요?
  • 리버스 프록시를 사용할 때 SSL을 어떻게 설정하나요.

@Aiden12114님, 이 개념들에 익숙하신가요?

그렇다면, 분명 문제없이 진행하실 수 있을 것입니다!

불행히도 그 말이 무슨 뜻인지 전혀 모르겠어요 :rofl:

두 가지 옵션이 있습니다:

  • 멀티사이트 - 더 복잡합니다 Multisite configuration with Docker
  • 여러 컨테이너 - 약간 복잡합니다(위에서 언급했듯이 리버스 프록시 등이 필요하며), 비용이 더 많이 듭니다.
    ./discourse-setup 스크립트 없이 Discourse를 설정하는 지침을 따르세요(cp samples/standalone.yml containers/app2.yml) 그리고 volumes 이름을 standalone이 아닌 다른 것으로 변경하세요.

이 주제에 관심이 있거나 결정을 내리는 분들을 위해 몇 가지 기술적 사실을 공유하는 것이 중요하다고 생각합니다:

  • 컨테이너당 여러 "사이트"를 가지는 단일 Discourse 컨테이너, 또는
  • 각 Discourse "사이트"마다 개별 컨테이너를 사용하는 방식.

“단일 컨테이너, 멀티 사이트” 방식을 사용하여 5개(또는 10개)의 Discourse 사이트가 운영 중일 때, 컨테이너를 재빌드하거나 컨테이너에 문제가 발생하면 5개(또는 10개)의 Discourse 사이트가 동시에 장애(또는 다운) 상태가 됩니다. 이는 모든 "사이트"를 하나의 컨테이너가 지원하고 있기 때문입니다.

“멀티 컨테이너” 방식을 사용하여 5개(또는 10개)의 Discourse 사이트가 운영 중일 때, 특정 사이트의 컨테이너를 재빌드하거나 해당 사이트 컨테이너에 문제가 발생하면 1개의 Discourse 사이트만 장애(또는 다운) 상태가 됩니다. 이는 하나의 컨테이너가 하나의 “사이트”(사이트별로 데이터 컨테이너와 앱 컨테이너를 분리하여 실행하는 경우와 같이 우리가 사용하는 방식이라면 두 개)를 지원하기 때문입니다.

또한 Docker는 컨테이너 간에 읽기 전용 레이어를 오버레이하고 공유하기 때문에(overlay2를 사용하는 Discourse 권장 Docker 스토리지 드라이버 사용 시), 컨테이너마다 고유한 것은 로그 파일, 캐시 등 읽기/쓰기 오버레이 레이어뿐입니다. 따라서 OverlayFS의 작동 방식 덕분에 여러 컨테이너를 사용해도 추가 디스크 공간이 많이 차지하지 않습니다.

Docker 오버레이 드라이버가 어떻게 작동하는지(컨테이너 간 라이브러리 공유 포함)라는 흥미로운 주제에 대해 더 자세히 알고 싶다면 다음 문서를 참조하십시오:

물론 어떤 방식을 채택할지는 각 시스템 관리자의 판단에 맡겨집니다. 위의 이유(그리고 아직 논의되지 않은 몇 가지 이유)를 바탕으로 분석한 결과, 우리는 항상 멀티 컨테이너 방식을 선택했습니다.

도움이 되길 바랍니다.