설치 문제... (첫 Discourse 설치 경험)

안녕하세요,

discourse-setup 스크립트를 사용하여 공식 방법으로 discourse를 처음 설치하려고 합니다… Arch VPS에서(그룹과 함께 테스트 목적으로) - 신선한 nginx 설치 환경에서 - 현재 nginx를 중지하고 비활성화해 두었습니다… 작동하는 빌드를 얻기 위해서입니다.

스크립트가 "Checking your domain Name…"에서 멈추고 있습니다 - 스크립트를 살펴보니 “connect_to_port” 호출인데 - 443 포트로 연결을 시도하는 것 같습니다… netcat은 설치되어 있습니다… 쉘에서 예를 들어 "nc host 443"를 입력하면 출력이 없고 아무 일도 일어나지 않습니다… “외부” nginx가 실행되지 않아 해당 포트에 아무것도 없기 때문인 것 같습니다… 스크립트가 거기서 정확히 무엇을 하는지 확실하지 않습니다.

해당 테스트를 건너뛰려고도 해 보았지만 - 결국 - 빌드 후 - 비슷한 시도를 하는 것 같습니다 - 그것도 작동하지 않았습니다. 그래서 모든 것을 삭제하고 이제 새로 시작했습니다… 이 netcat 연결 테스트를 실행하려면 어떻게 해야 합니까? 그러면 다른 문제들도 해결될 수 있을지 모르겠습니다…

(영어 실력이 매우 서툴러 죄송합니다… - 저는 영어 모국어가 아닙니다…)

netcat 없이 다시 시도해 보았더니 - 빌드가 이 메시지로 종료됩니다…

docker: Error response from daemon: driver failed programming external connectivity on endpoint app (80e0a31158301339ff7c9567079017bb795b1172ee47e1c6417c29acda3c699a): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.17.0.2:443 ! -i docker0: Warning: Extension tcp revision 0 not supported, missing kernel module?
Warning: Extension DNAT revision 0 not supported, missing kernel module?
iptables: No chain/target/match by that name.

이것이 docker 구성 문제일까요?

표준 설치를 하려면 nginx를 제거해야 합니다. Discourse에는 자체 nginx가 포함되어 있으므로 다른 nginx는 필요하지 않습니다(다른 이유로 nginx를 사용하려는 경우를 제외하고, 이 경우 설치가 더 복잡해집니다).

스크립트는 도메인 이름을 사용하여 자신에게 연결을 시도합니다. 도메인 이름이 VM을 가리키고 DNS가 올바르게 설정되어 있으며 443 포트와 80 포트를 사용하는 다른 서비스가 없다면, 해당 호스트 이름을 통해 자신에게 연결할 수 있어야 합니다.

검사를 여러 번 우회하면 Let’s Encrypt에서 HTTPS 인증서를 발급받으려는 시도 횟수 제한에 도달하게 됩니다.

감사합니다.

멀티사이트 구성을 원합니다. 그래서 리버스 프록시 설정이 필요하지만… 여기서 찾은 더 고급 가이드를 따라가려면 먼저 제대로 작동하는 기본 설치 환경이 필요합니다.

더 수동적인 설치 매뉴얼이 어딘가에 있나요? 아니면 정말로 머신을 완전히 초기화한 후에 다시 구축해야 하나요?

Discourse는 이 머신에서 실행되는 유일한 소프트웨어가 아니어야 합니다. 저는 공개 프록시 계층을 통해 접근하면서, Discourse를 별도의 계층으로 격리하는 방법을 알고 싶습니다.

어쨌든 이 머신은 폐기할 예정이므로, 반드시 시도해 볼 것입니다. 웹 앱을 위해 이렇게 해야 하는 것은 처음이라, 그저 “간단하게 유지하기 위해” 이렇게 하는 것입니다.

글쎄, ‘외부’ nginx에서 평소처럼 vhost를 설정하고 proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;를 사용하여 SSL을 여기서 종단(terminating)하면 됩니다.

그 후 app.yml 파일에서 포트 리다이렉션과 Let’s Encrypt 주석을 처리하고, 대신 소켓을 사용하도록 설정해야 합니다.

nginx를 재시작하고 Discourse를 다시 빌드하면 열린 포럼이 준비됩니다 :wink:

설치 방법은 여기서도 찾을 수 있습니다.

나한테 완전 도움되는 것 같아… 친구야 고마워 :smiling_face_with_three_hearts: 이거 가지고 진행해볼게…