Discourse가 갑자기 중단되었습니다. 아무도 로그인할 수 없습니다

wespenreboards.com의 Discourse가 몇 시간 동안 중단되었습니다. 회원들이 포럼이 해킹되었을 수 있다는 오류 메시지를 받는다고 합니다. 다른 회원은 인증서가 만료되었다는 메시지를 받는다고 하며, 세 번째 회원은 "FetchEvent.respondWith received an error:no-response."라는 메시지를 보고 있습니다.

저는 관리자(Admin)인데, 직접 로그인하려고 하면 로딩 스피너만 계속 도는 상태입니다. 포럼은 최신 버전으로 업데이트되어 있으므로 인증서도 정상일 것입니다. 확인을 위해 다음 명령을 실행해 보았습니다:

cd /var/discourse
git pull
./launcher bootstrap web_only && ./launcher destroy web_only && ./launcher start web_only

하지만 문제가 해결되지 않습니다.

어떤 아이디어나 해결책이 있을까요?

CDN을 사용하고 계신가요?

서버에 SSH로 접속한 후 다음을 시도해 보세요.

wget -q --timeout=3 https://localhost/privacy  -O - |egrep generator

이것이 작동하나요?

다음은 어떨까요?

wget -q --no-check-certificate --timeout=3 https://localhost/privacy  -O - |egrep generator

localhost 대신 전체 URL을 입력하면 어떨까요? 두 가지 버전의 명령어를 모두 시도해 보세요.

웨스, 안녕 :slight_smile:

지금 사이트가 올라가 있지 않은 것 같아. 그동안 뭐 좀 해 봤어?

오래전에 업데이트를 하지 않았다면 데이터 컨테이너를 업데이트해야 할 수도 있겠어. 두 컨테이너 구성에 대해서는 아직 완전히 파악이 안 돼서, 그 리듬에 대해 더 잘 알고 계실 것 같은 @pfaffman 님에게 도움을 요청해 볼게. :crossed_fingers: :slight_smile:

제이미, 안녕하세요! 예전에부터 알고 지냈습니다. 그 사이에 업데이트/업그레이드를 했어요. 그게 다입니다… 자, pfaffman이 오기까지 기다리겠습니다.

알겠습니다, 한번 해볼게요…

이 명령어들은 작동하지 않는데, 제가 잘못 사용하고 있는 것일 수도 있습니다. https://localhost/privacy를 https://wespenreboards.com/privacy로 교체해야 하나요?

이 경우 /privacy는 무엇을 의미하나요?

실제로 도메인을 사용하기 전에 먼저 localhost로 직접 시도해 보는 것이 좋습니다.

/privacy는 모든 포럼에 있는 표준 페이지입니다. 여기서 하는 일은 포럼이 로컬에서 응답하는지 확인하는 것입니다.

최근 업데이트되어 이제 company name(회사 이름)이 입력된 경우에만 /privacy와 /tos 페이지가 표시되도록 변경되었을 수 있습니다. 이 테스트에 영향을 미칠지는 모르겠지만 관련이 있을 것 같아 언급합니다.

이 결정에 대한 추가 정보는 여기에서 볼 수 있습니다:

알겠습니다. 그래서 localhost/privacy로 시도해 봤습니다. 그런 다음 localhost만, 그 다음 wespenreboards.com만, 그리고 마지막으로 wespenreboards.com/localhost로 시도해 봤습니다. 어떤 것을 사용해도 결과는 동일했습니다:

즉, 이 부분에 대해 제가 해야 할 일은 없는 건가요?

흥미롭네요. discourse-doctor에서 사용되고 있거든요. 그래서 업데이트가 필요할 수도 있습니다.

그것이 대문자 O가 아니라 숫자 0인 건가요? --no-check-certificate 옵션이 포함된 버전도 시도해 보셨나요?

/privacy가 작동하지 않는다면, 대신 /about을 시도해 보세요.

네, 숫자 0입니다. 알겠습니다. 대문자 O와 /about을 시도해 보겠습니다.

그리고 네, 다른 알고리즘도 시도해 봤지만, 거기도 0을 사용했었기 때문에 두 가지를 모두 시도해 보겠습니다…

두 가지 명령어를 모두 시도해 보았지만 작동하지 않습니다:

Untitled2

이용 약관(TOS) 및 개인정보 처리방침 페이지가 생성되는 시점에 대한 변경 사항은 비교적 최근 도입되었습니다. 만약 당신의 사이트가 새로 만들어진 것이 아니라면 이 변경 사항이 당신에게 영향을 미치지 않습니다.

discourse-doctor에서 어떻게 사용되는지 정확히 알지 못하겠습니다. @pfaffman 이 부분에 대해 의견을 주실 수 있을까요? 문제 해결(troubleshooting)을 위해 사용되는 건지, 아니면 단순히 링크의 존재 여부만 확인하는 용도인가요?

새로운 사이트 소유주들이 이 기능에 대해 더 잘 이해할 수 있도록 교육 활동을 강화할 예정입니다.

네, 그렇다면 문제가 접근성 문제가 아니라, Discourse가 제대로 시작되지 않는 문제일 가능성이 높습니다. launcher start를 실행할 때 보이는 내용을 전부 붙여넣어 주실 수 있을까요?

get_discourse_version에서 사용되며, 이 함수는 check_if_hostname_resolves_here에 의해 호출됩니다. 이 함수는 로컬호스트와 완전한 도메인 이름(FQDN)에 대한 연결이 동일한 버전을 보고하지 않을 경우 DNS 문제를 보고할 수 있습니다. 그러나 두 연결 모두 실패하는 경우 아무런 알림 없이 조용히 넘어갈 수 있습니다. 자세한 내용은 여기를 참고하세요.

그럼 launcher start는 어떻게 실행하나요? 아쉽게도 이런 용어들이 낯설어서요.

다음과 같은 방식으로 실행해 보세요.

cd /var/discourse
git pull
./launcher start web_only

(참고로, 제가 현재 사용 중인 것으로 보이는 2컨테이너 구성에 대해 개인적으로 잘 알지 못합니다. 또한, 스레드 앞부분에서 언급된 데이터 컨테이너를 업데이트해야 하는지에 대한 질문도 염두에 두시기 바랍니다.)

이렇게 나왔습니다:

대단해요! 로그인해 봤더니 이제 잘 작동하네요! 에드, 정말 감사합니다.

처음에 왜 이런 일이 생겼는지 아시나요?