Nginx-proxy-manager 뒤에 Discourse를 설치하지 못함

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 리버스 프록시 설정을 관리하기 위한 솔루션입니다.)

리버스 프록시를 사용하는 경우, 직접 설정해야 합니다. app.yml 파일을 그에 맞게 수정한 후 ./launcher rebuild app 명령을 실행해야 합니다.

OK, 해결했습니다.

저처럼 NGINX 서버를 실행하기 위해 별도의 VM / 호스트 / 기타 환경을 사용하는 사용자의 경우, 커스텀 플래그나 기능을 활성화할 필요가 없습니다.

단순히 도메인을 IP로 가리키고, NGINX를 해당 호스트명이 Discourse 서버로 라우팅되도록 설정하면 그냥 작동합니다. (SSL을 사용하는 경우 그에 맞게 설정하십시오.)

기본 설정이 잘 작동한다는 것을 깨닫기 위해 5시간 넘게 허비하며 이것저것 만져본 것이 믿기지 않습니다.