Discourse внезапно упал. Никто не может войти в систему

Мой Discourse на wespenreboards.com недоступен уже несколько часов. Участники сообщают, что у некоторых появляется сообщение об ошибке, будто форум был взломан. Другой пишет, что получает уведомление о том, что сертификат истёк. Третий теперь видит такое сообщение: «FetchEvent.respondWith получил ошибку: no-response».

Когда я пытаюсь войти сам (я администратор), у меня просто крутится загрузочное колесо. Форум обновлён, поэтому сертификат тоже должен быть актуален. Чтобы убедиться, я выполнил следующие команды:

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:

Привет, Jammy! Я помню тебя с прошлого раза. Я успел обновить/улучшить систему за это время. Всё, что нужно… Ладно, я подожду, пока появится pfaffman.

Хорошо, я попробую…

Эти команды не работают, но возможно, я делаю это неправильно. Нужно ли мне заменить https://localhost/privacy на https://wespenreboards.com/privacy?

Что означает /privacy в данном случае?

Лучше сначала попробовать их с помощью буквально localhost, а затем уже с вашим реальным доменом.

/privacy — это просто стандартная страница на каждом форуме: то, что мы здесь делаем, — это проверка, отвечает ли форум вообще, локально.

Возможно, это недавно изменилось, так как теперь страницы /privacy и /tos отображаются только после заполнения поля company name. Не знаю, повлияет ли это в данном случае на тест, но подумал, что это может быть релевантно.

Чуть больше информации о принятом решении здесь:

Понятно. Итак, я попробовал с localhost/privacy. Затем только localhost. Затем только wespenreboards.com и в конце wespenreboards.com/localhost. Результат был одинаковым при использовании любого из них:

Значит, мне ничего не нужно делать с этим?

Это интересно — это используется в discourse-doctor. Возможно, его тоже нужно обновить.

Это ноль, который, возможно, должен быть заглавной буквой O? Пробовали ли вы также версии с --no-check-certificate?

Если /privacy не работает, попробуйте вместо него /about.

Да, это ноль. Хорошо, я попробую вместо него O и /about.

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

Я попробовал обе команды, но это не работает:

Untitled2

Изменение времени создания страниц TOS и политики конфиденциальности довольно недавнее. Если ваш сайт не новый, это вас не затрагивает.

Не уверен, как именно это используется в discourse-doctor. @pfaffman, не могли бы вы высказать своё мнение? Это используется для устранения неполадок или просто для проверки наличия ссылок?

Мы будем предпринимать больше усилий, чтобы информировать новых владельцев сайтов об этой функциональности.

Хорошо, значит, проблема не в доступности, а скорее всего в том, что Discourse не запускается корректно. Можете ли вы скопировать и вставить всё, что вы видите при запуске команды launcher start?

Это используется функцией get_discourse_version, которая вызывается функцией check_if_hostname_resolves_here. Последняя может сообщить о ПРОБЛЕМЕ С DNS, если подключение к localhost и к полностью квалифицированному домену возвращают разные версии. Однако, похоже, что если оба подключения не удаются, сообщение может не отображаться. См. здесь.

Так как же запустить launcher start? К сожалению, я не знаком со всей этой терминологией.

Примерно так:

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

(Имейте в виду, что я лично не знаком с двухконтейнерной настройкой, которую вы, похоже, используете. Также учтите вопрос, заданный выше в теме, о том, следует ли вам обновить контейнер данных.)

Вот что получилось:

Отлично! Я попытался войти, и теперь всё работает! Большое спасибо, Эд.

Ты знаешь, почему это произошло изначально?