여러분 안녕하세요! 여기 있는 여러 게시물을 읽어 보았지만 해결책을 찾지 못해서, 문제가 해결되길 바라며 현재 제 환경을 자세히 설명해 보겠습니다.
현재 저는 Unraid 서버를 운영하고 있습니다. Unraid는 Docker 컨테이너와 VM을 호스팅합니다. 저는 Nginix Reverse Proxy Manager(NPM)를 Docker 컨테이너로 실행하고 있으며, 이 NPM이 제가 실행하는 다른 모든 Docker 컨테이너의 리버스 프록시를 처리합니다. 방화벽은 80/443 포트의 모든 WAN 트래픽을 NPM으로 보내도록 설정되어 있고, NPM 내부에서 트래픽을 각 컨테이너로 리다이렉트하고 있습니다.
다음 가이드를 따랐습니다: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
이 가이드는 클라우드 서버에 설치하는 것을 대상으로 하고 있다고 명시되어 있지만, 제 경우 자택에서 셀프 호스팅하는 베어 메탈(bare metal) 머신입니다.
System information as of Sun Jan 28 07:35:54 AM UTC 2024
System load: 0.5126953125
Usage of /: 45.9% of 13.16GB
Memory usage: 6%
Swap usage: 0%
Processes: 125
Users logged in: 0
IPv4 address for docker0: 172.17.0.1
IPv4 address for enp1s0: 10.30.20.150
Unraid에서 VM을 부팅하고, Ubuntu Server를 설치하고, 정적 IP 주소를 설정하고, Docker를 설치한 후 Discourse를 다운로드했습니다. 설치를 실행하면 다음과 같은 오류가 발생합니다.
Hostname for your Discourse? [discourse.example.com]: forum.mydomain.net
Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:
WARNING: Connection to (port 80) also fails.
This suggests that forum.mydomain.net resolves to some IP address that does not reach this
machine where you are installing discourse.
The first thing to do is confirm that forum.mydomain.net resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.
If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.
This tool is designed only for the most standard installations. If you cannot resolve
the issue above, you will need to edit containers/app.yml yourself and then type
./launcher rebuild app
NPM 컨테이너에서 10.30.20.150이라는 정적 IP가 할당된 Ubuntu VM으로 ping을 보낼 수 있습니다. NPM 설정에서 https 10.30.20.150 포트 443 및 http 포트 80을 대상으로 설정해 보았지만 효과가 없습니다. 설치가 실패하면 VM 내의 Discourse 컨테이너가 닫히는 것처럼 보입니다.
이 문제를 우회할 방법이 있을까요?
아마도, 방화벽 포트를 편집하여 리버스 프록시를 우회하고 VM을 직접 대상으로 지정하여 인증서를 발급받고 컨테이너를 실행한 후, 실행 중이になったら config.yml을 수동으로 편집하여 리버스 프록시를 사용하도록 변경할 수 있을까요?
설치를 편집하여 SSL 인증서를 요구하지 않고 포트 80에서 실행하게 한 다음, NPM을 통해 SSL 인증서를 발급받도록 처리할 수도 있을까요?
마지막으로, 몇몇 게시물에서 Discourse에 ‘production’ 버전과 ‘development’ 버전이 있다는 것을 보았습니다… 개발 버전은 로컬 포트에서 HTML로 실행할 수 있는 것 같습니다? 만약 이것이 사실이라면, 모든 것을 리버스 프록시 뒤에 두는 것이 훨씬 쉬울 것 같습니다..? 제가 읽은 바로는 production 패키지가 업데이트를 유지하기가 더 쉽고 성능 개선이 있을 수 있다고 합니다.
이 문제에 대해 도움, 피드백 또는 제안을 정말로 감사히 하겠습니다.