안녕하세요,
Discourse에서 HTTPS를 사용하여 웹소켓을 설정하는 방법에 대해 안내나 예시를 제공해 주실 분 있으신가요?
일반적인 HTTP는 작동하지만, HTTPS로 설정해야 합니다.
안녕하세요,
Discourse에서 HTTPS를 사용하여 웹소켓을 설정하는 방법에 대해 안내나 예시를 제공해 주실 분 있으신가요?
일반적인 HTTP는 작동하지만, HTTPS로 설정해야 합니다.
참고로, 다른 게시글을 읽은 바로는 이 방법을 시도해 볼 가치가 있을 것 같습니다.
사실 그렇진 않아요. 말씀드렸듯이 저는 80/443 포트로 다른 웹사이트들을 잘 운영하고 있습니다. LiteSpeed로 웹사이트를 이미 운영 중이고, 메일 서버도 차단되지 않았습니다. 8443 포트도 시도해 봤지만, 아무것도 뜨지 않았습니다. WebSocket 방식은 HTTP로 실행할 수는 있었지만, HTTPS에서의 혼합 콘텐츠(mixed content) 문제로 인해 깨져 있었습니다.
Discourse는 80/443 포트 조합 외에는 지원되지 않습니다.
그래서 저는 Discourse가 80/443 포트 외의 어떤 포트도 지원하지 않는다고 말씀드린 것입니다.
정말 다른 조합을 시도해보고 싶으시다면, 그건 전적으로 본인 책임입니다.
내 생각엔 정말 멍청한 짓이다. 보통은 같은 서버에 여러 서비스를 돌리는데, 사용자가 그렇게 하지 못하도록 사실상 제한하고 있는 거잖아. 또한 도커 컨테이너도 보통 같은 서버에 단독으로 존재하지 않는다. 기본 포트 외의 다른 포트는 지원하고 싶지 않다는 이유만으로 다른 사람에게 별도의 서버를 구매하라고 압박하는 것 같다.
수천 명이 실제로 같은 서버에서 Discourse와 다른 서비스를 함께 운영하고 있습니다. 이를 위한 방법이 존재합니다. 제대로 조사해 본다면, 이는 매우 잘 지원되는 사용 사례임을 알 수 있습니다. 이를 위해 리버스 프록시를 앞에 배치해야 합니다.
다음은 이를 수행하는 방법 중 하나입니다: Run other websites on the same machine as Discourse
저는 공개된 Discourse 샌드박스를 NUC에 호스팅하고 있으며, Nginx Proxy Manager를 통해 여러 다른 서비스를 함께 운영합니다. 하지만 이는 저만의 방식일 뿐입니다. 공식적으로 지원되지는 않지만, 저는 이 부분에 대해 잘 알고 있습니다.
저도 전에 이미 시도해 봤는데, 제대로 작동하지 않습니다. 어쨌든, 말씀하신 것처럼 수천 명이 그렇게 하고 있는 상황에서 지원팀의 역할이 전혀 없다고 생각합니다. 그런데 GitHub이나 위키 어디에도 이를 제대로 작동시키는 명확한 단계가 없습니다. 그냥 80/443 옵션만 제시되어 있고, 이는 단일 서비스처럼 동작합니다.
기존 Apache 사이트가 있는 서버에서 Discourse를 설정하는 방법(Set up Discourse on a server with existing Apache sites)과 같은 리버스 프록시가 필요합니다.
다만, 나는 애초에 apache를 사용하지 않고 있습니다. nginx와 litespeed가 더 필요하지만, 어쨌든 다른 포트를 자유롭게 사용하도록 하면 다른 웹 서버에 쉽게 전달할 수 있을 것입니다.
아니요, 도커에 대해 전혀 모르겠습니다. 하지만 이전에 도커스(Discourse)를 설치하기 전에 같은 VPS에 Nginx와 Varnish를 사용했을 때, 소켓을 문제없이 사용했습니다. 하지만 이 경우와 다른 건가요?
현재는 도커스가 Nginx/Varnish와 다른 VPS에 설치되어 있어 소켓을 사용할 수 없습니다. 그래서 Varnish가 모든 요청을 포트 82로 보내고, 거기서부터 도커스가 설치된 VPS로 전달됩니다. 그래서 다음과 같이 설정해 두었습니다:
expose:
- "82:80"
하지만 이것도 도커스가 포트 80/443만 사용할 수 있다는 것과 완전히 다른 개념인가요?
nginx 가이드를 찾거나 이 가이드를 예시로 사용할 수 있습니다.
그 일은 일어나지 않을 것입니다. https를 처리하는 리버스 프록시가 필요합니다.
작동하는 방법을 찾았어요. 사실 생각보다 어렵지 않았고, 원하시는 포트에서 Discourse를 실행할 수 있습니다.
맞습니다. Varnish를 앞에 두어 URL이 일반적인 https URL이 되도록 구성하면, Discourse 도커 컨테이너에서 포트 82(또는 임의의 포트)를 열 수 있습니다. Varnish가 https 인증서를 관리하는 한, 예상대로 진행할 수 있어야 합니다.