У меня есть ссылки на example.com. Откуда они?

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

Я перенёс экземпляр Discourse с одного хоста на другой, из мультисайтовой настройки в настройку с одним хостом и одним контейнером, используя экспорт/импорт резервной копии, и некоторые ссылки используют www.example.com вместо правильного хоста.

Как это исправить?

Я установил переменную DISCOURSE_HOST в значение имени хоста, но это, похоже, не решает проблему. Есть ли какой-либо SQL-запрос, который я могу использовать для поиска вхождений www.example.com?

Возможно, стоит выполнить переназначение, как описано в статье Смена доменного имени или переименование моего Discourse?

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

Привет, @hellekin

Вы можете быстро найти все настройки вашего сайта, содержащие строку “example”, используя консоль Rails следующим образом:

SiteSetting.where('value LIKE ?', "%example%")

Например, на нашем экземпляре Discourse:

[1] pry(main)> SiteSetting.where('value LIKE ?', "%unix\.com%").count
=> 10

Если вы хотите проверить REDIS, попробуйте (предполагая, что ваш контейнер с данными называется app; измените это при необходимости):

docker exec -it app redis-cli

Затем выполните что-то вроде:

127.0.0.1:6379> KEYS *example*
(empty list or set)

Другой пример:

127.0.0.1:6379> KEYS *unix*
1) "default:_CACHE:onebox__https://www.unix.com/man-page/linux/1/df/"
2) "ANON_CACHE_text/html,application/xhtml+xml,application/signed-exchange;v=b3,application/xml;q=0.9,*/*;q=0.8_https_community.unix.com/t/passing-variables-to-awk/150198|m=true|c=true|b=true|t=|ca=|l=_count"
3) "default:_CACHE:onebox__https://www.unix.com/aix/56317-timestamp-sh_history-using-ksh-shell.html"

Чтобы быстро просмотреть все ваши глобальные настройки, выполните эту команду в консоли Rails — все глобальные настройки будут отображены (я уверен, что есть лучший способ сделать это…, но этот метод быстрый и работает нормально):

[1] pry(main)> GlobalSetting.as_json

Надеюсь, это поможет.

Перейдя по ссылке от @pfaffman, я понял, что использовал DISCOURSE_HOST вместо DISCOURSE_HOSTNAME.

Полезные советы по расследованию от @neounix не дали результата, поэтому я предполагаю, что первая проблема привела к текущей ситуации. Я пересобираю контейнер, чтобы проверить…

Контейнер пересобран, и ссылки теперь показывают ранее битые изображения, так что, думаю, проблема решена. Спасибо вам обоим!

@pfaffman не могли бы вы, пожалуйста, выполнить rebuild HTML для ActivityPub Support: Phase 1 RFC - #27 by hellekin, чтобы подтвердить исправление?

Да, теперь это имеет полный смысл, когда я посмотрел код. Конфигурация Discourse устанавливает значение хоста по умолчанию в "www.example.com" в конфигурационном файле, поэтому, если в файле сборки была ошибка (как вы описали, @hellekin), похоже, вы получите значение по умолчанию :slight_smile:

Возможно, когда-нибудь кто-нибудь изменит это значение по умолчанию в конфигурации на:

hostname = "www.hostname-missing-check-yml-file.com"

:slight_smile: :slight_smile:

У меня здесь нет прав администратора. Если вы хотите проверить, работают ли встраивания вашего сайта на других сайтах, вы можете протестировать это на try.discourse.org.

Думаю, hostname = "please.set.DISCOURSE_HOSTNAME.env.example" было бы более явно и соответствовало бы RFC.

Спасибо, я уже проверил это в другом месте, просто хотел обновить этот пост :slight_smile:

Кнопка нажата. Похоже, изображение появилось!