bot_verifier

Директива bot_verifier включает или отключает модуль проверки ботов для NGINX, позволяя или блокируя доступ для запросов, выдающих себя за поисковых ботов.

Синтаксисbot_verifier on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументы1

Описание

Директива bot_verifier является частью модуля NGINX, предназначенного для повышения безопасности сервера путем проверки того, что входящие запросы, выдающие себя за индексационные боты поисковых систем, являются подлинными. Это важно, поскольку заголовок User-Agent легко подделать, и полагаться на него как на показатель подлинности запроса нельзя. Когда эта директива установлена в 'on', модуль запускает процесс проверки, который включает сверку запроса с кэшированной записью проверенных ботов, обычно хранящейся в базе Redis. Если соединение с Redis не установлено или терпит неудачу, модуль прекратит процесс проверки, вернув NGX_DECLINED, позволяя запросу продолжиться без валидации.

Процесс проверки включает определение исходного адреса запроса, проверку его в кэше на предмет статуса верификации и, при необходимости, проведение более глубокой проверки. Система также может сохранять новые результаты проверки в кэше для будущих запросов. Если запрос признаётся подлинным, сервер разрешает его выполнение; напротив, если проверка не проходит, запрос блокируется с возвратом HTTP_FORBIDDEN. Этот механизм снижает накладные расходы на производительность, связанные с постоянной проверкой в реальном времени, за счёт кэширования результатов предыдущих проверок, оптимизируя время ответа системы для подлинных запросов.

Пример конфига

location / {
    bot_verifier on;
    bot_verifier_redis_host localhost;
    bot_verifier_redis_port 6379;
    bot_verifier_redis_connection_timeout 10;
    bot_verifier_redis_read_timeout 10;
    bot_verifier_redis_expiry 3600;
    bot_verifier_repsheet_enabled on;
}

Убедитесь, что Redis настроен правильно и доступен; в противном случае проверка не пройдёт, и запросы могут быть разрешены без проверки.

Не забудьте включить директиву bot_verifier в соответствующем контексте, чтобы она применялась (http, server, location).

Неправильно настроенные таймауты могут привести к блокировке запросов, если Redis работает медленно или не отвечает.

← Ко всем директивам