Discourse가 페이지를 제공하지 않음

앱의 nginx 로그 파일을 확인해 보셨나요?

@NoBugsBunny 아직 확인하지 않았습니다. 확인 후 결과를 알려드리겠습니다. 컨테이너에 문제가 있을 것이라고는 생각하지 않았는데, 올바른 구성으로 빌드되었어야 하니까요. 다만 컨테이너 내 Nginx 설정은 확인해 봤는데, ‘Welcome to Nginx’ HTML 파일을 서빙하도록 구성되어 있는 것으로 보입니다.

discourse(또는 아마도 다른 어떤 것)를 설치하기 전에 그 문제를 먼저 수정해야 합니다.

@pfaffman 이상한 점은 이것이 다른 많은 VM이 정상적으로 실행 중인 우리의 프로덕션 ESXi 서버라는 것입니다.

@NoBugsBunny Let’s Encrypt 관련 정보를 입력하지 않았는데도 Nginx가 인증서를 사용해야 한다고 판단하는 것 같습니다. 인증서를 일시적으로 사용하지 않도록 설정하는 방법이 있을까요?

/var/log/nginx/error.log

2020/08/03 14:51:00 [emerg] 24093#24093: cannot load certificate "/shared/ssl/uat.xxxxx.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

/var/log/nginx/error.letsencrypt.log

2020/08/02 12:54:46 [error] 42#42: *2 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 218.103.208.140, server: , request: "GET /favicon.ico HTTP/1.1", host: "uat.xxxxx.com", referrer: "http://uat.xxxxx.com/"
2020/08/03 07:27:56 [error] 35#35: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 218.103.208.140, server: , request: "GET /favicon.ico HTTP/1.1", host: "uat.xxxxx.com", referrer: "http://uat.xxxxx.com/"

/var/log/nginx/access.letsencrypt.log

18.196.96.172 - - [03/Aug/2020:07:23:19 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
3.128.26.105 - - [03/Aug/2020:07:23:20 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
34.211.6.84 - - [03/Aug/2020:07:23:20 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
64.78.149.164 - - [03/Aug/2020:07:23:29 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
218.103.208.140 - - [03/Aug/2020:07:27:56 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
218.103.208.140 - - [03/Aug/2020:07:27:56 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://uat.xxxxx.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"

app.yml 파일에서 ssl 템플릿을 제거하세요

그 다음 다시 빌드하세요

네, 가능합니다.

이렇게 하는 방법은 여러 가지가 있습니다.

컨테이너의 yml 파일에서 Let’s Encrypt(LE) 템플릿을 주석 처리하고, LE와 관련된 다른 환경 변수들도 주석 처리한 뒤 다시 빌드하는 것을 권장합니다.

@titusc 더 도움이 필요하면 알려주세요. 문제를 찾아낸 것을 축하드립니다.

훌륭한 작업이었습니다.

거의 다 왔습니다! :slight_smile:

@IAmGav @neounix 정보 주셔서 감사합니다. 네, ./discourse-setup를 실행한 후 containers/app.yml 파일에서 다음 줄들을 찾을 수 있습니다.

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Lets Encrypt(https)를 추가하려면 이 두 줄의 주석을 해제하세요
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

**Let’s Encrypt 경고용 선택적 이메일 주소? (ENTER를 누르면 건너뜁니다)**라는 질문에 Enter를 눌렀음에도 불구하고 파일이 그대로 생성되는 점이 다소 실망스럽습니다.

마지막 두 줄에 주석을 달고 ./launcher stop app 및 ./launcher rebuild app을 실행하면 문제가 해결됩니다.

아니, 이런. 30분 기본 설치 문서에 이런 내용이 명시되어 있으면 좋았을 텐데 싶네요.

@neounix 님, 이렇게 격려해 주셔서 특별히 감사드립니다.

@IAmGav님, @titusc님의 마지막 게시글을 읽으셨다면:

:wink:

훌륭한 해결책이었네요 @titusc !!

우리가 논리적인 방법으로 한 단계씩 진행했다면 해낼 수 있을 거라는 걸 알고 있었습니다.

행복을 빕니다.

결과를 공유해 주셔서 감사합니다.