Ошибка входа только на одном сайте в мультисайтовой системе

У меня есть основной сайт Discourse с шестью добавленными к нему подсайтами, каждый из которых имеет свой уникальный домен и базу данных.

Изначально я скопировал базу данных основного сайта для обеспечения согласованности, и это отлично работает с остальными пятью подсайтами.

Однако на одном сайте при попытке входа:

  • Если вход осуществляется через OIDC, на пустом экране появляется ошибка: «Извините, время ожидания авторизации истекло, или вы сменили браузер. Пожалуйста, попробуйте снова».
  • Если вход по логину/паролю, над полями ввода появляется сообщение «Неизвестная ошибка».

Я даже пробовал скопировать базу данных с рабочего сайта на этот проблемный, но это не помогло.

Ниже приведена конфигурация мультисайта, на случай если это поможет.

     oneexample:
       adapter: postgresql
       database: oneexample
       username: adminexample
       password: pwexample
       host: 192.168.1.1
       port: 5432
       pool: 25
       timeout: 5000
       db_id: 5
       host_names:
         - 1example.com

Причина, по которой я выбрал ‘oneexample’ и ‘1example’, заключается в том, что домен начинается с цифры. Единственное предположение, которое у меня есть, — что проблема возникает из-за цифры, поскольку при возврате базы данных на рабочий сайт, где в домене нет цифры, всё работает нормально.

Кто-то может сказать, что мне следует выбрать другой домен, но этот домен довольно дорогой, и я хотел бы заставить его работать.

Я очистил куки браузера, удалил логи входа из базы данных, а также пробовал использовать другой домен с той же базой данных. Всё работало отлично.

Одно из потенциальных решений, которое я пока не тестировал, — изменить домен на поддомен, просто чтобы убрать цифру в начале адреса домена, например:

Но, опять же, это лишает смысла покупку этого премиум-домена за большие деньги.

Не смотрю ли я не туда? Может ли существовать какое-либо рабочее решение?

попробовал также с host_names: xxx.1example.com, но ошибка остаётся той же.

С той же базой данных я успешно протестировал несколько URL-адресов без цифр. Похоже, проблема связана с доменом, но других подсказок у меня нет.

Из блока location моего Nginx:

proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto $scheme;

Я удалил последнюю строку, так как её функция дублирует первые две. Однако, похоже, что Discourse воспринял вход как происходящий через http, а не https.

Я также добавил следующую строку в app.yml, чтобы убедиться, что Discourse действительно пытается выполнить вход через https, и в итоге всё заработало.

  • DISCOURSE_FORCE_HTTPS: true

Так что главный вопрос в том, как это сработало для остальных 5 подсайтов?

Тут ты меня перехитрил