AWS EC2에 공식 런처를 사용하여 설치하고, 부트스트랩을 수행했으며, Docker를 시작했는데 포트 80에서 작동하지 않습니다. 다음과 같은 현상이 나타납니다.
[*******]# telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
Connection closed by foreign host.
EC2 내부의 Docker에 접속하여 nginx 로그를 확인해보니 매초마다 다음과 같은 오류가 발생합니다:
cannot load certificate “/shared/ssl/ec2-x-x-x-x.xx-xx.compute.amazonaws.com.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name: no start line: Expecting: TRUSTED CERTIFICATE)
컨테이너 내부의 Redis와 Postgres 로그는 정상입니다. /var/www/discourse/log에 있는 애플리케이션 로그에도 특별한 내용은 보이지 않습니다(다만 로그가 매우 짧습니다).
Windows 10 Ubuntu Linux (WSL) 환경에서는 일부 유사한 증상이 나타납니다. 마운트된 Windows 도커를 사용 중이며(네이티브 도커는 WSL에서 작동하지 않기 때문), 설치 과정은 순조롭게 진행되었고, 이미지 부트스트랩, 데이터베이스 업데이트 및 화면에 표시되는 기타 여러 작업이 완료되었습니다. 결국 도커는 시작됩니다(docker ps에서 확인 가능하며 포트 매핑도 정상적으로 수행됩니다). 하지만 로컬호스트(이렇게 설정해 두었습니다)에 접근을 시도하면 서버가 응답을 보내지 않아 화면이 빈 상태로 표시됩니다. 로컬호스트 80번 포트에 텔넷으로 연결을 시도하면 아예 연결이 되지 않습니다(AWS Linux에서는 무언가 반응이 있다가 거부되지만).
인증서를 잘못 설정했습니다. 대신 Let’s Encrypt를 사용하는 것을 권장합니다. 컨테이너를 중지한 후 app.yml 파일을 삭제하고 discourse-setup을 다시 실행하여 Let’s Encrypt에 사용할 이메일 주소를 입력하세요.