설치 버그: 루트 도메인에 설치하면 컨테이너 외부에서 NGinx가 열립니다

안녕하세요

새로운 Discourse 인스턴스를 설치하려고 하고 있으며, 도메인의 루트에 설치하는 것을 시도하고 있습니다 (Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com) 를 읽었고 요구 사항을 충족할 수 있습니다). 처음에 실수를 했는데, discourse-setup 스크립트에 아펙스 도메인(apex domain)을 제공하면 NGinx가 Docker 외부에서 실행되는 것을 확인했습니다. 테스트하고 재현하기가 쉽습니다.

  1. 새로운 VM 인스턴스를 시작하고 nginx가 설치되어 있지 않으며 포트 80이 열려 있지 않은 것을 확인했습니다.
  2. discourse-setup 스크립트를 실행하고 스크립트에 아펙스 도메인을 제공했습니다.
  3. 스크립트가 완료까지 실행되었습니다.
  4. Nginx가 Docker 외부에서 실행 중( ps -ax 로 확인)이며 포트 80을 점유하고 있습니다. 도메인으로 접속하면 nginx 환영 화면이 표시됩니다.

이에 대해 검색해 보았지만 다른 보고서를 찾지 못했지만, Docker 외부에서 nginx가 실행되는 것을 발견한 여러 사람을 본 적이 있으며 이것이 원인이 될 수 있습니다.

이것은 제 실수임을 인지하고 있지만, 스크립트가 아펙스 도메인을 제공하는 것을 허용하지 않는 것이 더 나은 것 같습니다.

기술적으로 이것은 불가능합니다. 아마도 사용자의 VM에는 nginx가 사전 설치되어 있었을 것입니다. 일부 클라우드 제공업체는 표준 이미지에서 웹 서버(apache2 또는 nginx)를 번들로 제공합니다.

안녕하세요! 네, 저도 그렇게 생각하고 있어서 완전히 새로운 VM을 프로비저닝한 후, discourse-setup을 실행하기 전에 Nginx가 설치되어 있지 않은지 확인했습니다. 그 직후에 설명대로 nginx가 실행되었습니다.

저는 몇 번의 설치를 진행했으며, 매번 동일한 절차를 따랐고 모두 예상대로 작동했습니다. 이번에는 도메인 루트에 설치(즉, 설정 스크립트에 example.com을 전달)를 시도한 첫 번째 사례였는데, 이 문제가 발생했습니다. VM과 OS 등 환경은 동일합니다.

다시 테스트하고 추가 로그를 수집해 보겠습니다.

오늘 아침에 루트 도메인에 Discourse를 설치해서 확인해 보았는데, 잘 로드되었습니다. :+1: (Digital Ocean, 2GB 드롭렛)

ps -ax는 Docker 내부에서 실행 중인 프로세스도 표시합니다.
이것은 가상화(virtualization)가 아니라 컨테이너화(containerization)입니다.

컨테이너 내부와 외부에서 service nginx status를 실행해 보세요.

root@ip:~# service nginx status
Unit nginx.service could not be found.
root@ip:~# cd /var/discourse/
root@ip:/var/discourse# ./launcher enter app
x86_64 arch detected.
service service root@ip-app:/var/www/discourse# service nginx status
[ ok ] nginx is running.

고마워요, 그렇게 할게요 - JavaScript heap out of memory due to Ember CLI 이슈 때문에 지금은 잠시 보류 상태입니다