CentOS 7에서 Discourse를 설치하기 위해 안내문을 따랐습니다
이메일 설정을 올바르게 완료하고 테스트 이메일도 수신했습니다. 하지만 항상 502 Bad Gateway 오류가 발생합니다.
이전에 ssl_stapling 관련 문제가 있었지만, 전체 체인 인증서 파일을 포함시켜 해결했습니다.
docker 앱이 커스텀으로 정의된 포트 25654에서 리스닝하는 것을 확인할 수 있습니다:
0.0.0.0:25654->80/tcp, :::25654->80/tcp
discourse 앱이 리스닝하지 않아 발생하는 것으로 보이는 nginx 오류가 다음과 같이 표시됩니다.
connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxxx, request: “GET / HTTP/2.0”, upstream: “http://x.x.x.x:25654/ ”, host: “xxxx”
[MY_DOMAIN].net과 discourse.[MY_DOMAIN].net 모두 올바른 IP 주소로 가리키는 DNS 항목을 설정해 두었습니다.
griffin
(Jonathan Griffin)
7월 6, 2021, 8:41오전
2
Meta Discourse 커뮤니티에 오신 것을 환영합니다
저는 Let’s Encrypt 커뮤니티 에서 SSL 설치 관련 문제를 도와주는 일을 자주 합니다. 그런데 두 번째 서버 블록에 IPv6 리스닝 문구가 빠져 있는 것 같네요:
listen [::]:443 ssl http2;
이 문구가 없으면 IPv6 트래픽이 어디로 향하게 될지 잘 모르겠습니다.
존나선님, 정말 감사합니다. 연결 거부 문제를 해결했습니다.
이제 discourse URL을 시도하면 “Welcome to CentOS” 페이지로 리디렉션되며 다음과 같은 오류 로그가 표시됩니다.
Discourse doctor는 여전히 버전 NOT FOUND라고 표시합니다.
netstat를 확인해 보니 포트 25654에 docker-proxy 프로세스가 두 개가 실행 중인데, 하나는 tcp용이고 다른 하나는 tcp6용입니다. 다른 튜토리얼의 스크린샷에서는 이런 현상을 볼 수 없어서 이것이 문제가 되는지 궁금합니다.
CentOS는 다른 설정이 필요한 것 같아서, 이 튜토리얼의 nginx 설정을 따랐습니다:
또한 MYDOMAIN.net과 discourse.MYDOMAIN.net을 nginx를 통해 같은 머신에서 실행하고 싶어서, 해당 튜토리얼에서 확인한 app.yml과 nginx conf에 몇 가지 추가 변경 사항도 적용했습니다:
The guide in the first post is great and, on the whole, still works just fine
There are three things worth noting:
I initially missed some of the app.yml changes. There are 3 things you need to change in your app.yml. If you miss any of these things it won’t work:
Comment out all ssl templates in the templates. If you are using letsencrypt you will have two:# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
Add a socket template:- "templates/web…
예를 들어 웹소켓 템플릿을 활성화해 두었습니다.
하지만 이제 그 튜토리얼의 댓글에서 소켓을 사용하려면 모든 노출된 포트를 주석 처리해야 한다는 내용을 읽었습니다. 다만 첫 번째 설정을 참고하면 nginx가 25654로 전달하는 트래픽을 수신하도록 “25654:80” 항목을 추가하고 있습니다.
이것이 기본적인 설정 문제라면 죄송합니다. 포트 포워딩/소켓 및 일반적인 네트워크 설정은 제 강점이 아니기 때문입니다.
Falco
(Falco)
7월 6, 2021, 2:40오후
6
이것들은 고급 설정입니다. 리버스 프록시 설정과 도커 관리에 익숙하지 않은 사용자의 경우, 공식적인 Discourse 표준 설치 가이드를 따르는 것을 권장합니다. 이 가이드는 완전히 새로운 서버를 전제로 하며, Discourse가 해당 서버에서 실행되는 유일한 웹 앱이라고 가정합니다.