Не удается добавить мой сайт сообщества в Discourse Hub — ищу помощь

Здравствуйте,

Я пишу, чтобы попросить помощи в решении проблемы, с которой я борюсь уже некоторое время: мой личный сайт сообщества (starorigin.net) невозможно добавить в Discourse Hub. Изучив вопрос, я заметил, что многие другие сталкивались с подобными проблемами на протяжении лет, и, к сожалению, некоторые из этих случаев так и остались нерешёнными. Сейчас я оказался в той же ситуации и был бы крайне признателен за любую помощь или консультацию.

Вот краткое описание моей ситуации:

  1. Первоначальный успех:

    • Когда я впервые настроил свой сайт сообщества (starorigin.net), мой сайт был успешно добавлен в Discourse Hub. Это позволяло моим друзьям легко получать доступ к сообществу через мобильное приложение Discourse.
  2. Текущая проблема:

    • После того как я следовал руководству по настройке Cloudflare, доступному в сообществе Discourse, и перенёс свой сервер, мой сайт больше не отображается в 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. Возможно, вам стоит обратиться к форумам Cloudflare.

Спасибо за предложение. Я попробовал отключить Cloudflare, но всё равно не могу напрямую получить доступ к https://starorigin.net/user-api-key/new, и ошибка 400 сохраняется. Это заставляет меня думать, что проблема может быть на стороне моего сервера.

Не могли бы вы подсказать, где мне следует проверить конфигурацию моего сервера?
спасибо!

Проверьте эту теорию, временно отключив Cloudflare, дождавшись истечения TTL DNS, а затем попробовав добавить его в 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, чтобы трафик мог напрямую обращаться к моему серверу. Прошло три часа, но я всё ещё не могу найти свой сайт в Discourse Hub. Теперь я не уверен, где искать проблему.

Это утверждение неверно — запрос DNS для starorigin.net к именным серверам Cloudflare всё ещё возвращает их IP-адреса:

○ → host starorigin.net colin.ns.cloudflare.com
Используя сервер домена:
Имя: colin.ns.cloudflare.com
Адрес: 162.159.44.75#53
Алиасы: 

starorigin.net имеет адрес 172.64.80.1
starorigin.net имеет IPv6-адрес 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 действительно является некорректным запросом.

Вам нужно правильно отключить Cloudflare, чтобы определить источник проблемы.

Привет, друг. Я уже решил эту проблему. Она была вызвана настройкой обратного прокси в Baota и 1Panel. По сути, обе платформы по умолчанию включают proxy_cache в конфигурациях NGINX. Добавление proxy_cache off; в правила обратного прокси должно решить проблему.

Для получения дополнительной информации обратитесь к: