Discourse를 실행하기 위해 Ubuntu Server 18.04가 설치된 VM을 배포(로컬, 하이퍼바이저 호스트를 통해)해 보았습니다.
문제는 domain.xyz로 들어오는 트래픽을 x.x.x.x 주소로 포워딩하고, nginx-proxy-manager에 로컬로 설치/생성된 인증서를 사용하려 할 때 발생합니다.
설치 프로그램(Discourse용)은 포트 443이 열려 있음을 인정하지 않으며, 도메인의 진위를 확인하는 과정에서 매번 443이 접근할 수 없고 80은 접근 가능하다고 실패를 알립니다.
직접 테스트해 보면 Chrome에서 웹 서버가 다운되어 있음을 나타내는 502 오류가 발생합니다. 이는 다소 이상합니다. 해당 테스트를 실행할 때 특정 파일을 찾고 있는 것이 아닐까 싶습니다. ¯\_(ツ)_/¯
공식 문서에서 다른 애플리케이션과 함께 호스팅하는 방법에 대해 설명되어 있듯이 app.yml에서 구성 옵션을 수동으로 설정해 보았습니다. 또한 ./discourse-doctor를 통해 수동으로 빌드해 보았지만 역시 실패했습니다. Docker 컨테이너는 시작되지만 웹 브라우저를 통해 아무것도 표시되지 않습니다(NGINX 오류 502).
NGINX 리버스 프록시 구성 측면에서는 선택지가 많지 않습니다. 모든 것이 GUI 기반으로 되어 있어 프로세스가 단순화되어 있습니다. 대부분 Bitwarden, NextCloud, Restya와 같은 다른 서비스는 바로 잘 작동했지만, Discourse는 매우 까다로운 것 같습니다. 왜냐하면 제가 시도한 어떤 방법으로도 작동하지 않았기 때문입니다.
구성 측면에서는 다음과 같이 설정했습니다:
SSL의 경우, NGINX-Proxy 서버가 Discourse나 실행 중인 다른 애플리케이션 위에 적용하는 인증서를 사용하도록 설정했습니다.
(정리하자면, 리버스 프록시 서버는 Ubuntu 18.04가 설치된 별도의 VM이며, Nginx-Proxy-Manager는 여러 NGINX 리버스 프록시 설정을 관리하기 위한 솔루션입니다.)
