커뮤니티 웹사이트를 Discourse Hub에 추가하지 못함 – 도움 요청

안녕하세요,
오랜 기간 동안 고생하고 있는 문제에 대해 도움을 요청드리고자 이 글을 씁니다. 제 개인 커뮤니티 웹사이트(starorigin.net)를 Discourse Hub에 추가할 수 없습니다. 조사해 본 결과, 과거에도 여러 사람이 비슷한 문제를 겪었고, 안타깝게도 일부 사례는 여전히 해결되지 않은 상태임을 알게 되었습니다. 현재 저 역시 동일한 상황에 처해 있어 도움이 있거나 조언을 주시면 감사하겠습니다.

제 상황을 요약하면 다음과 같습니다:

  1. 초기 성공:

    • 처음 커뮤니티 웹사이트(starorigin.net)를 설정했을 때, 제 사이트는 Discourse Hub에 성공적으로 목록에 올랐습니다. 덕분에 친구들이 Discourse 모바일 앱을 통해 커뮤니티에 쉽게 접근할 수 있었습니다.
  2. 현재 문제:

    • Discourse 커뮤니티에서 제공되는 Cloudflare 설정 튜토리얼을 따르고 서버를 이관한 후, 제 웹사이트는 더 이상 Discourse Hub에 표시되지 않습니다. 문제를 해결하기 위해 여러 번 시도해 보았지만, 목록 복원에 실패했습니다.
    • 이로 인해 친구들이 모바일 앱을 통해 커뮤니티에 편리하게 접근할 수 없게 되어 상당한 불편을 겪고 있습니다.
  3. 시도해 본 내용:

    • 권장 구성과 일치하는지 확인하기 위해 모든 Cloudflare 설정을 재확인했습니다.

    • Discourse 포럼에서 비슷한 문제를 검색하고 제안된 해결책을 시도해 보았지만, 아직까지 효과가 없었습니다.

    • 비슷한 문제를 겪고 해결하신 분의 조언을 주시면 매우 감사하겠습니다. 또는 Discourse Hub 팀이 기술적 어려움을 겪는 커뮤니티 소유자가 자신의 사이트를 Hub에 수동으로 추가할 수 있는 특별한 기능을 구현해 줄 수 있을까요? 표준적인 방법으로 문제를 해결하지 못하고 막혀 있는 우리 같은 사람들에게 큰 도움이 될 것입니다.

저는 제 커뮤니티에 대한 열정이 크며, 친구와 멤버들이 최대한 편리하게 접근할 수 있도록 하고 싶습니다. 시간 내어 도움을 주셔서 미리 감사드립니다!

DiscourseHub은 다음 주소로 HEAD 요청을 보냅니다:

https://starorigin.net/user-api-key/new

그런데 400 오류를 반환받아 사이트를 추가하는 작업을 계속할 수 없습니다. 해당 엔드포인트에 대한 액세스를 허용하도록 Cloudflare 구성을 수정해야 합니다.

  1. /user-api-key/new에 대한 페이지 규칙 생성:
  • Cloudflare 대시보드에 로그인합니다.
  • Rules > Page Rules로 이동합니다.
  • Create Page Rule을 클릭합니다.
  • If the URL matches 필드에 다음을 입력합니다:

https://starorigin.net/user-api-key/new

  • Then the settings are 아래에서 다음을 선택합니다:
    • Cache Level: Bypass
    • Security Level: Off
    • 규칙을 저장하고 테스트합니다.

  • 그러나 이는 작동하지 않는 것 같습니다. 제가 받는 출력은 다음과 같습니다:

{"errors":["param is missing or the value is empty: nonce"]}

죄송합니다. Cloudflare UI가 어떻게 작동하는지 잘 모르겠습니다. Cloudflare 포럼을 확인해 보시는 것이 좋을 것 같습니다.

제안해 주셔서 감사합니다. Cloudflare을 비활성화해 보았지만 여전히 https://starorigin.net/user-api-key/new에 직접 액세스할 수 없으며 400 오류가 계속되고 있습니다. 이 문제는 제 서버 측에 있을 것 같네요.

서버 구성에서 어디를 확인해야 하는지 조언해 주실 수 있을까요?
감사합니다!

Cloudflare를 일시적으로 비활성화하고, DNS TTL이 만료될 때까지 기다린 후, 다시 Discourse Hub에 추가해 보며 이 가설을 테스트해 보세요.

curl -v http://127.0.0.1:8080/user-api-key/new
*   Trying 127.0.0.1:8080...
* Connected to 127.0.0.1 (127.0.0.1) port 8080
> GET /user-api-key/new HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/8.5.0
> Accept: */*
> 
< HTTP/1.1 400 Bad Request
< Server: nginx
< Date: Tue, 14 Jan 2025 22:15:08 GMT
< Content-Type: application/json; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 0
< X-Content-Type-Options: nosniff
< X-Permitted-Cross-Domain-Policies: none
< Referrer-Policy: strict-origin-when-cross-origin
< X-Discourse-Route: user_api_keys/new
< Vary: Accept
< X-Request-Id: fe9303f5-ce51-4bd2-a73e-cda5a6d654e9
< X-Runtime: 0.004521
< 
* Connection #0 to host 127.0.0.1 left intact
{"errors":["param is missing or the value is empty: nonce"]}

이것은 내 서버의 디버깅 결과입니다. 컨테이너에 문제가 있어 접근할 수 없는 것 같습니다. 원인이 무엇일 수 있으며, 어떻게 문제를 해결할 수 있을까요? 도움을 주신다면 매우 감사하겠습니다.

제가 제안한 것과 완전히 다른 것을 테스트하셨고, 서버가 정상적으로 작동하고 있음을 보여줄 뿐이었습니다.

수신한 오류는 다음과 같습니다:

{"errors":["param is missing or the value is empty: nonce"]}

서버는 정상입니다. 이 API를 잘못 호출했기 때문에 오류가 발생한 것입니다. 예를 들어 meta.discourse.org에 대해 동일한 요청을 보내면 같은 결과가 나옵니다:

○ → curl https://meta.discourse.org/user-api-key/new
{"errors":["param is missing or the value is empty: nonce"]}

Cloudflare를 비활성화하여 트래픽이 서버에 직접 접근할 수 있도록 했습니다. 3시간이 지났는데도 여전히 Discourse Hub에서 제 웹사이트를 찾을 수 없습니다. 이제 문제를 어디에서 찾아야 할지 막막합니다.

이 진술은 정확하지 않습니다. Cloudflare의 네임서버를 대상으로 starorigin.net에 대한 DNS 조회를 수행하면 여전히 Cloudflare의 IP 주소가 반환됩니다:

○ → host starorigin.net colin.ns.cloudflare.com
Using domain server:
Name: colin.ns.cloudflare.com
Address: 162.159.44.75#53
Aliases: 

starorigin.net has address 172.64.80.1
starorigin.net has IPv6 address 2606:4700:130:436c:6f75:6466:6c61:7265

다른 몇몇 커뮤니티에서도 저와 유사한 문제가 발생하고 있다는 것을 발견했습니다. 예를 들어, baidu.do(https://baidu.do/user-api-key/new)도 제게는 접근할 수 없지만, Discourse Hub에서는 여전히 찾을 수 있습니다. 왜 이런 일이 일어나는 것일까요?

OpenAI 커뮤니티의 경우에도 이 URL은 제 개인 웹사이트와 동일한 콘텐츠를 출력하지만, Discourse Hub에서는 여전히 검색할 수 있습니다.

이것은 "문제"가 아니라 정상적인 동작입니다.

/user-api-key/new는 함께 전송되는 추가 매개변수가 필요합니다 - curl로 호출하는 것은 **정말 잘못된 요청(bad request)**입니다.

문제의 원인을 파악하려면 Cloudflare를 올바르게 비활성화해야 합니다.

안녕하세요, 친구. 이 문제는 이미 해결했습니다. Baota와 1Panel의 리버스 프록시 설정으로 인해 발생했었습니다. 기본적으로 두 플랫폼 모두 NGINX 설정에서 proxy_cache가 활성화되어 있습니다. 리버스 프록시 규칙에 proxy_cache off;를 추가하면 문제가 해결될 것입니다.

자세한 내용은 아래 링크를 참고해 주세요:
https://www.discoze.com/t/topic/17