Корпоративный сайт строительной компании
Ничего не меняли, всё упало
Сайт строительной компании падал каждый день в 10:00–14:00. Команда клянётся: ничего не меняли. Проблема — невидимая: 70% трафика генерировали боты.
Задача
Корпоративный сайт строительной компании. Понедельник, 9 утра — сайт не отвечает. IT-отдел: «Мы ничего не меняли с пятницы».
Анализ nginx логов:
- Бот-трафик вырос в 50 раз за выходные
- 95% запросов — краулеры агрегатора недвижимости
- RPS: 200 запросов/сек на каталог проектов
- Каждый запрос = 15-20 SQL-запросов → Latency MySQL 10+ сек
- User-Agent легитимный — стандартный Rate Limiting не блокировал
Боты не были злонамеренными — просто агрессивный парсинг без baseline уважения к серверу. DoS без намерения.
Решение
Экстренные меры
Сначала нужно было понять: это атака или «сломалось»? Алгоритм диагностики →
- Блокировка User-Agent агрессивного бота
- robots.txt: Disallow + Crawl-delay: 10
- Rate Limiting в nginx: 1 req/sec для *bot*, *crawler*, *spider*. Готовые правила →
Классификация ботов
Не все боты — враги. Важно правильно их классифицировать:
- Bot Management: поисковики, мониторинг, парсеры, вредоносные
- IP Reputation + Fingerprinting для неизвестных
- Googlebot без ограничений, остальные — challenge
- Honeypot-ссылки для детекции агрессивных краулеров
Архитектура
Подготовили инфраструктуру к будущим всплескам по принципам отказоустойчивости:
- Redis Cache для каталога — TTL 5 минут
- CDN через Cloudflare — Edge Server кэширует
- API для партнёров — легальный способ получить данные
- Prometheus + Grafana: дашборд бот-трафика. Как настроить →
- Alertmanager: алерт при превышении baseline
Боты съедают ресурсы? Настроим умную фильтрацию — защитим от парсеров, сохраним SEO.
Результаты
- Бот-трафик снижен на 73% — только полезные боты
- Нагрузка на Origin Server: −60%
- Cache hit ratio: 90% для каталога
- Позиции в Google сохранены — Googlebot не затронут
- Bot Management автоматически классифицирует новых ботов
- 2 партнёра подключились к API — монетизация вместо блокировки
- Latency стабильно < 200ms
" Мы не понимали, сколько ботов посещает наш сайт. Оказалось — больше половины трафика. Теперь мы контролируем, кто и как собирает наши данные.
Хотите такой же результат?
Расскажите о своём проекте — обсудим, как можем помочь