Мой инстанс имеет очень низкую нагрузку, менее 1000 просмотров страниц в день (без учёта краулеров).
Однако уже при открытии главной страницы форума, без каких-либо действий, я получаю как минимум один ответ 429, иногда два или три, и это происходит ещё до того, как я что-либо нажимаю.
Поиск здесь, на meta, дал единственную тему, но она касается сайтов с высокой нагрузкой и не объясняет, что происходит в моём случае.
Мой инстанс установлен с помощью официального установщика, но с использованием подпапки. Я думал, что проблема может быть в неправильной настройке передачи реальных IP-адресов пользователей от моего обратного прокси-сервера к NGINX, но, насколько я могу судить, IP-адреса передаются корректно (я могу углубиться в эту проверку, если это всё ещё считается возможным причиной проблемы).
Само по себе это не вызывало бы у меня особой тревоги, но иногда у меня возникают проблемы в чате: когда я редактирую сообщение в чате, обновлённый контент не отображается сразу, и я задаюсь вопросом, не связано ли это с ошибками 429.
Буду признателен за любые рекомендации по диагностике этой проблемы, любые предложения будут приняты с благодарностью!
Привет, Стивен, спасибо, что нашли время ответить!
Я проверил IP-адреса, указанные в активных учётных записях, и все они, включая мой, кажутся верными. IP-адреса других пользователей различаются между собой и все они из разных регионов моей страны (Бразилии), что и ожидалось. Я подумывал проверить базу данных и логи, но воздержался, так как этот тест указывает на то, что проблема может быть не в этом.
Я не использую CloudFlare в качестве прокси, но использовал его ранее — я ещё раз проверил, что файл templates/cloudflare.template.yml закомментирован.
Теперь, глядя на мой app.yml, я вижу, что templates/web.ratelimited.template.yml также закомментирован… Интересно, имеет ли смысл включить его, чтобы избежать ограничения скорости? Это же не имеет смысла, верно?
Тело ответа 429: «Вы выполнили это действие слишком много раз. Пожалуйста, подождите 2 минуты перед повторной попыткой».
Я всё ещё получаю эти сообщения. Теперь я понимаю, что проблема в Discourse, а не в Nginx, поэтому я попытался установить DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS: 0.2 (по умолчанию 0.1), как упоминалось в других темах, связанных с ошибкой 429 от Message Bus, но ничего не изменилось. Буду благодарен, если кто-то укажет, какие переменные окружения могут ослабить это ограничение.
Я бы не слишком беспокоился об этих проблемах, настоящая проблема в том, что сообщения чата не отображаются, пока я не обновлю страницу или не переключу канал: если я перейду из личного чата в другой, а затем вернусь обратно, только тогда я смогу увидеть новые сообщения.
Как мы только что обсуждали, это вызвано накоплением запросов Unicorn. @renato скорректирует количество процессов Unicorn и сообщит о результатах.
Это действительно плохо. То, что должно происходить, — это автоматическое восстановление чата после периода отката и получение всех сообщений с момента последнего успешного опроса. Вы этого не видите? Если так, то это серьезная ошибка.
Да, я этого не наблюдал, возможно, дело в чём-то другом, я не уверен. Я вижу зелёную точку, указывающую на новое сообщение, но само сообщение не отображается. Затем, когда я переключаю каналы, я вижу новые сообщения, и зелёная точка уведомления исчезает.
Я сейчас пересобираю систему с дополнительными воркерами и продолжу тестирование. Если это продолжится, я постараюсь собрать как можно больше деталей и сообщу об этом.
@Falco Отчитываюсь: в консоли и вкладках сети по-прежнему вижу 429.
Также могу воспроизвести проблему, когда окно чата не обновляется, даже при переписке с самим собой: если я отправляю сообщение, оно появляется, но элементы управления при наведении отсутствуют. Если переключиться на другой чат и вернуться обратно, я могу отредактировать отправленное сообщение, но для того чтобы увидеть изменения, мне нужно покинуть чат и вернуться в него.
Я сейчас занимаюсь масштабным рефакторингом множества компонентов, связанных с сетью и живыми обновлениями. Ожидаю, что объединю изменения где-то на следующей неделе. Это может значительно улучшить вашу проблему (если только она не связана с чем-то совершенно другим).
Похоже, у нас та же проблема. Многие активные пользователи чата сообщают, что не видят сообщения, отправленные другими, а только свои собственные, пока не обновят страницу. Есть ли какое-либо решение для этого — либо через фронтенд в панели управления, либо через SSH?