안녕하세요 여러분! Google Cloud에서 Discourse를 설치하고 실행하기 위해 몇 번 시도해 보았습니다. 현재 세 번째 시도 중이며, VM 인스턴스(Ubuntu 18.04 minimal)를 생성한 후 터미널을 통해 Discourse를 수동으로 설치하고 있습니다. 가이드를 따랐는데 모든 것이 정상적으로 진행되는 것처럼 보이지만, ./discourse-setup를 완료한 후에도 사이트에 접근할 수 없습니다.
또한 Google 마켓플레이스의 “원클릭” 배포 솔루션(Google 자체 및 Bitnami)을 사용하여 Discourse를 설치해 보기도 했습니다. 이렇게 설치했을 때는 Discourse 랜딩 페이지에 접근할 수 있었습니다.
Google과 포트 설정 사이에 문제가 있는 것 같고(이 때문에 사전에 준비된 설치 방식에서는 이런 문제가 발생하지 않았을 것 같으며), 이 부분에 대해 제가 아는 것이 너무 적어서 혼자 디버깅하기가 어렵습니다. 혹시 의견 주실 분 있으신가요?
이제 내가 웹 서버를 실행하고 있지 않은 건 아닌지 의심이 듭니다. Discourse를 설치하기 전이나 후에 Nginx를 설치해야 하는 건가요? 이 스레드의 생각 흐름을 따라갔는데, 제 문제와 동일합니다.
자, 이제 이것이 문제라는 생각이 듭니다. Nginx가 설치되어 있는 것 같았지만 실행 중이 아니었습니다. docker-proxy의 PID 14311과 14295를 종료한 후 Nginx를 실행했습니다. 이제 Nginx가 포트 80에 바인딩되어 있고, 제 사이트를 접근하면 Nginx가 반겨줍니다!
이제 Docker/Discourse를 다시 실행하는 것만 남았습니다.
또한 구버전 Ubuntu에서 Discourse/Nginx를 설치하는 이 가이드도 찾았습니다. 그들은 어째서인지 Docker의 포트를 80번에서 변경한 것 같습니다. 아마 여기에서 충돌이 발생하는 것일지도 모릅니다.
어떤 식으로든 Nginx가 포트 80에서 실행되고, Docker-proxy가 http는 8060번 포트, https는 9443번 포트에서 리스닝하도록(다른 튜토리얼의 제안에 따라) 설정하는 데 성공했습니다. 하지만 이렇게 달성한 후에도 다시 막막해졌습니다. Discourse는 정말 멋진 포럼처럼 보이지만, 저 같은 초보자에게는 Google Cloud에 설치하는 것이 불가능한 것 같습니다.
Discourse에는 이미 nginx 서버가 내장되어 있으므로, Discourse 호스팅 외에 서버를 다른 목적으로 사용할 계획이 없는 한 전용 웹 서버를 실행할 필요가 없습니다. 서버에 공용 IP 주소가 할당되어 있는지, 그리고 해당 IP가 포트 22, 80, 443에 대한 외부 연결을 허용하도록 구성되어 있는지 확인해 주시겠습니까?
사실 이미 3번이나 설치했는데, 매번 포트가 바인딩되지 않습니다. 3번의 설치는 성공적으로 완료되었지만, 포럼에 접근해 본 적은 한 번도 없습니다. 그래서 구글 버전을 사용하려고 알아보고 있습니다. (구글 버전은 작동하지만 SMTP를 설정할 수 없습니다.) 그리고 구글 버전에서 SMTP를 설정할 방법을 찾아보려 합니다.
설치가 완료된 후에 SMTP를 설정할 수 있을까요? 이 링크의 "11단계"를 따르면 discourse.conf 파일을 [만들 수 있고(존재하지 않으므로),] 수정할 수 있습니다. 그렇게 한 후, "discourse 서비스"를 다시 시작하고 이메일 설정을 테스트할 수 있을 것 같습니다.
즉, Discourse를 다시 설치할 필요가 없다는 뜻이 맞나요?
하지만 실행 중인 서비스를 살펴보면, 내 Discourse 포럼이 분명히 정상 작동 중임에도 불구하고 "discourse"라는 이름의 서비스는 보이지 않습니다.
음. 이상하네요. 하지만 Google Cloud에서 실제로 가능하다는 것을 확인해 주셔서 감사합니다. 저도 Discourse가 잘 설치된다고 생각하며, 문제의 원인이 VM/포트라고 봅니다. 그럼 내일 네 번째로 시도해 보겠습니다. 매번 해당 준비 단계를 수행했는데도 말이죠. Bhanu님, 감사합니다.
같은 과정을 한 번 더 수행했는데, 이번에는 각 단계를 더 신중하게 진행했습니다.
Google Cloud에서 인스턴스와 프로젝트를 삭제하고, 새 프로젝트로 처음부터 다시 시작했습니다.
그 후 새 프로젝트와 새 인스턴스를 생성했습니다. Ubuntu 18.04 LTS minimal을 사용했고, HTTP/HTTPS를 활성화했습니다. 위에서 링크한 공식 가이드를 따르기 전에, Bhanu의 조언대로 연결성을 테스트했습니다. Google Cloud의 "환영 튜토리얼"을 따랐는데, 여기에는 포트 80에서 파이썬 서버 스크립트를 실행해 보는 과정도 포함되어 있습니다.
“공식 가이드” 진행 과정에서 SMTP 설정을 매우 신중하게 수행했습니다. 이유를 모르겠지만 Mailgun을 사용하지 않고 대신 Sendinblue를 사용하기로 결정했습니다. 아주 잘 작동합니다!
이번에 무엇이 달라졌는지는 정확히 모르지만, 이제 잘 작동합니다. 스레드에서 함께 논의해 주셔서 감사합니다!
이전 게시물을 수정할 수 없는 이유는 모르겠지만, модератор가 두 게시물을 병합할 수도 있을 것 같습니다.
추가로 말씀드리고 싶은 것은, 제 문제와 해결책이 제가 너무 조급했기 때문이었을 수도 있다는 점입니다.
잘못된 플러그인을 설치한 탓에 최근 Discourse 인스턴스를 초기화하고 다시 설치해야 했습니다. 이 새로운 인스턴스를 시작했을 때 새로운 IP를 받게 되었습니다. 그래서 호스팅 서비스로 가서 서브도메인 discourse.mydomain.com을 Google Cloud 인스턴스의 IP로 가리키는 A레코드/DNS를 업데이트했고, 이후 Google Cloud SSH로 돌아가 설치를 실행했습니다.
./discourse-setup을 처음 실행하면 포트 80과 443에 바인딩할 수 있는지를 확인합니다. 하지만 어떤 이유에서인지 다시 80과 443 포트에 바인딩을 거부했습니다. who.is를 통해 DNS를 조회해 보니 서브도메인은 해당 IP로 정상적으로 해석되었고 모든 것이 정상이었지만, 여전히 작동하지 않았습니다. ./discourse-setup을 3번 실행해 봤지만 실패했고, netstat -ltnpu로 확인해 보았지만 특별한 점은 없었습니다. 5분을 더 기다린 후 네 번째로 실행해 보니 이번에는 작동했습니다.