Я недавно заметил огромный скачок в категории «Другой трафик» на странице «Здоровье сообщества» моего форума (панель администратора Discourse → Отчёты → Здоровье сообщества).
• Период: начало августа 2025 года
• Ежедневный трафик: вырос до 100 тыс.+ «Другого трафика» в день
• Пример: 16 августа 2025 года
• Просмотры страниц авторизованными пользователями: 12 531
• Просмотры страниц анонимными пользователями: 2 753
• Известные краулеры: 6 865
• Другой трафик: 102 054 (большая часть от общего трафика в 124 тыс.)
Этот «Другой трафик» кажется аномальным и значительно превышает активность реальных пользователей. Количество регистраций стабильно, поэтому это не похоже на настоящий рост.
Мои вопросы:
1\. Что обычно означает «Другой трафик» в Discourse?
2\. Может ли это быть боты, спам или неправильно настроенный обратный прокси/CDN?
3\. Как можно сократить или отфильтровать этот трафик? (например, Nginx, фаервол, настройки Discourse)
4\. Безопасно ли просто игнорировать это, или это повлияет на производительность/затраты?
Буду очень признателен за любые предложения или лучшие практики по корректной обработке такого трафика от третьих сторон/ботов.
Вы можете проверить отчёт о краулерах на своей панели управления, чтобы найти возможный источник, и при желании замедлить его работу или заблокировать. Дополнительные сведения об этом здесь: Controlling Web Crawlers For a Site.
В июле у меня возникли проблемы с огромным количеством запросов из Сингапура. Я заблокировал диапазон IP-адресов, что сработало на какое-то время, но в августе проблема вернулась с новой силой (из Сингапура, Гонконга и Мексики), что привело к высоким и неожиданным затратам на CDN
Я заметил высокий трафик просмотров страниц от Amazonbot, DataForSeoBot, meta-externalagent, SeekportBot и других…
Этот список не содержит некоторых из самых активных ботов, которые посещают мой сайт, но у меня всё же есть вопрос.
Было бы разумно добавить весь этот список в настройку Заблокированные user-agent краулеров?
Есть ли способ массово добавить имена ботов из файла .txt?
Краулеры приходят с намерением проиндексировать ваш сайт в поисковых системах, поэтому рост трафика от них должен быть минимальным, если только это не боты, маскирующиеся под краулеров. Многие форумы не хотят, чтобы их индексировали краулеры, и вот как это сделать: краулеры имеют идентификатор/ссылку на свой источник, поэтому здесь вы можете добавить любое имя, которое позволит краулингу только этому источнику (ха-ха, какое странное слово )
Наиболее вероятная причина роста вашего трафика — это боты, и вам следует проверить логи вашего сервера. Если вы знаете кого-то, кто хоть немного разбирается в Linux, я рекомендую этот инструмент настройки за 2 минуты для блокировки стран с плохой репутацией ботов (вы легко найдете его в интернете). После настройки всё равно стоит предупредить ваше сообщество, что им может понадобиться VPN для доступа к вашему сайту, если они окажутся в отпуске в этих странах. Вот этот инструмент: он эффективен и сократит на 80–90% ненужные запросы к вашему серверу. У вас есть два режима, и нужно выбрать один: разрешённые страны или запрещённые страны.
Также можно использовать Geo Blocking plugin, но он блокирует только просмотр страниц, а не прямые запросы к вашему серверу, как это делает инструмент выше.
Вы абсолютно уверены в этом? Потому что если это правда, я сразу же настрою обратный прокси.
Редактирование
И ИИ здесь сказал то же самое. Значит, будет обратный прокси.
Ответ ИИ
Плагин GeoBlock для Discourse использует базу данных MaxMindDB для определения страны или сети (ASN) пользователя на основе его IP-адреса, но фактическая блокировка происходит на уровне приложения (внутри самого приложения Discourse), а не на уровне сервера или сети/фаервола.
На практике:
Если IP-адрес посетителя соответствует заблокированной стране или сети, приложение Discourse возвращает посетителю страницу с ошибкой вместо содержимого форума.
Блокировка не происходит до тех пор, пока HTTP-запрос не достигнет приложения Discourse. Иными словами, запросы всё ещё проходят через ваш веб-сервер (например, nginx) и контейнер Docker, достигая программного обеспечения Discourse, прежде чем пользователь будет заблокирован.
Это означает, что вы всё равно увидите эти запросы в логах вашего сервера и прокси/nginx, даже если пользователь в конечном итоге будет заблокирован системой Discourse.
Если вам требуется «жёсткая» блокировка (предотвращение доступа ещё до того, как запрос достигнет приложения Discourse), вам потребуется решение на уровне сервера с использованием GeoIP (например, блокировка на уровне nginx/iptables или использование внешнего инструмента).
Резюме:
Плагин GeoBlock для Discourse не блокирует запросы на уровне сети/сервера, а только после того, как приложение Discourse обработает запрос. Если вам необходимо предотвратить любой доступ до того, как ваше приложение увидит запрос, вы должны использовать подход GeoIP на уровне сервера.
Я не использовал функцию «поделиться разговором», потому что задал вопрос на финском, а вы, вероятно, не сможете его прочитать
Это означает, что ваша страница доступна, так что да, вы находитесь на слое, более близком к серверу, чем блокировка на уровне брандмауэра. Однако это не означает, что это проблема безопасности, требующая использования обратного прокси.
Инструмент, который я предложил, уже сокращает количество запросов на 80%, а Discourse — это безопасное приложение. Если же на вашем сервере размещены и другие вещи, например веб-сайт, обратный прокси может оказаться полезным. Тем временем существуют и другие решения для блокировки IP-адресов с плохой репутацией, например Crowdsec. Спросите у своего ИИ про Crowdsec Light
(здесь автор плагина геоблокировки)
Да, плагин геоблокировки останавливает запросы на уровне приложения, хотя и делает это на очень раннем этапе. Причина в том, что он разработан для отображения удобной для пользователя страницы ошибки, поэтому он должен иметь возможность загружать ресурсы Discourse и показывать эту страницу. Кроме того, он регистрирует все блокировки в /logs, если это настроено.
Другие преимущества такого подхода — возможность настройки заблокированных стран и сетей прямо внутри Discourse, а также возможность не просто блокировать доступ, но и принудительно применять модерацию.
Если вас беспокоит раздувание логов или потребление полосы пропускания CDN, то этот плагин вам не подходит, но честно говоря, я не думаю, что эти два фактора имеют большое значение.