Centminmod + discourse

안녕하세요.
centminmod LEMP 스택( https://centminmod.com/ )에서 discourse 플랫폼을 사용해 보고 싶습니다.

Docker를 성공적으로 설치했습니다.

docker -v
Docker version 20.10.17, build 100c701

설치 가이드( discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub)를 몇 가지 세부 사항을 조정하여 따랐습니다. 저는 엄밀히 말하면 클라우드 서버가 없습니다. 제 관리형 인스턴스입니다.

또한 /containers/app.yml 파일을 수동으로 편집해야 했습니다.

이 작업을 완료한 후 ./launcher rebuild app 명령으로 앱을 다시 빌드할 때 오류가 발생하지 않습니다.

하지만 docker 인스턴스에 연결할 수도 없습니다. 가상 호스트의 랜딩 페이지로 이동합니다.

nginx 설정을 docker로 리버스 프록시하려면 무엇을 해야 합니까? 아니면 centminmod에 discourse를 설치하는 가이드를 작성한 사람이 있습니까?

감사합니다!

Andy

제가 보기에는 이 링크가 찾으시는 내용과 가장 가까울 것 같습니다: Run other websites on the same machine as Discourse .

작동하는 Discourse 설치를 완료했습니다.

Docker 설치 - 여기서는 다루지 않음
Discourse 설치 -

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

/var/discource/containers의 app.yaml 구성

app.yml를 수정하여 포트 80+443을 제거

## 이 파일을 변경한 후에는 반드시 다시 빌드해야 합니다
## /var/discourse/launcher rebuild app
##
## 편집 시 매우 주의하세요!
## YAML 파일은 공백이나 정렬 오류에 대해 매우 민감합니다!
## 필요할 경우 이 파일을 검증하려면 http://www.yamllint.com/ 을 방문하세요

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.socketed.template.yml"
  #- "templates/web.ratelimited.template.yml"

## 이 컨테이너가 노출해야 할 TCP/IP 포트는 무엇인가요?
## Apache 또는 nginx와 같은 다른 웹 서버와 포트를 공유하려면
## 자세한 내용은 https://meta.discourse.org/t/17247 을 참조하세요
expose:

  #- "25654:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## db_shared_buffers는 총 메모리의 최대 25%로 설정하세요.
  ## bootstrap이 감지된 RAM에 따라 자동으로 설정되거나, 직접 덮어쓸 수 있습니다
  db_shared_buffers: "128MB"
 
  ## 정렬 성능을 향상시킬 수 있지만, 연결당 메모리 사용량이 증가합니다
  #db_work_mem: "40MB"
 
  ## 이 컨테이너가 사용할 Git 리비전은 무엇인가요? (기본값: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## 동시에 처리할 수 있는 웹 요청 수는 얼마인가요? 메모리와 CPU 코어에 따라 다릅니다.
  ## bootstrap이 감지된 CPU에 따라 자동으로 설정되거나, 직접 덮어쓸 수 있습니다
  UNICORN_WORKERS: 2

  ## TODO: 이 Discourse 인스턴스가 응답할 도메인 이름
  ## Nginx 구성에서 server_name으로 변환되는 값으로 생각하세요
  DISCOURSE_HOSTNAME: 'your.site.com'
 
  ## 컨테이너가 위에서 지정한 도메인 이름(-h 옵션)과 동일한 이름으로 시작되도록 하려면 주석 해제
  ## (기본값 "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: 초기 가입 시 관리자 및 개발자로 지정될 쉼표로 구분된 이메일 목록
  ## 예: 'user1@example.com,user2@example.com'
  ## 이 이메일은 처음 Discourse 인스턴스에 로그인할 때 사용합니다.
  DISCOURSE_DEVELOPER_EMAILS: 'email@your.com'

  ## TODO: 새 계정 검증 및 알림 전송에 사용되는 SMTP 메일 서버
  DISCOURSE_SMTP_ADDRESS: smtp.your.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@your.com
  DISCOURSE_SMTP_PASSWORD: addpasswordhere  # 경고: 비밀번호에 '#' 문자가 있으면 문제가 발생할 수 있습니다!
  ## JSON 객체인 경우 위의 비밀번호 관련 문제는 발생하지 않습니다

  ## 이 Discourse 인스턴스의 CDN 주소 (인출하도록 구성됨)
  ## 자세한 내용은 https://meta.discourse.org/t/14857 을 참조하세요
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## Docker 컨테이너는 상태가 없으며(stateless), 모든 데이터는 /shared에 저장됩니다
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## 플러그인은 여기에 배치합니다
## 자세한 내용은 https://meta.discourse.org/t/19157 을 참조하세요
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## 빌드 후 실행할 사용자 정의 명령
run:
  - exec: echo "Beginning of custom commands"
  ## 첫 번째 가입 시 'From' 이메일 주소를 설정하려면 주석을 해제하고 변경하세요:
  ## 첫 가입 이메일을 받은 후 해당 줄을 다시 주석 처리하세요. 한 번만 실행하면 됩니다.
  - exec: rails r "SiteSetting.notification_email='noreply@khophi.co'"
  - exec: echo "End of custom commands"

/usr/local/nginx/conf/conf.d 찾기
해당 conf 파일 편집

추가

proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
                proxy_set_header Host $http_host;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;

를 location / { 에

include /usr/local/nginx/conf/503include-only.conf; 를 #로 주석 처리

또한

#include /usr/local/nginx/conf/pre-staticfiles-local-yourdomain.com.conf;
  #include /usr/local/nginx/conf/pre-staticfiles-global.conf;
  #include /usr/local/nginx/conf/staticfiles.conf;
  #include /usr/local/nginx/conf/drop.conf;
  #include /usr/local/nginx/conf/errorpage.conf;
  #include /usr/local/nginx/conf/vts_server.conf;