dynamic_limit_req_redis
Настраивает параметры подключения к базе данных Redis, используемой модулем динамического ограничения запросов.
Описание
Директива dynamic_limit_req_redis является частью ngx_dynamic_limit_req_module, который динамически блокирует IP-адреса и периодически снимает блокировки в зависимости от интенсивности запросов. Эта директива позволяет задать параметры подключения к Redis, популярному хранилищу структур данных в памяти, которое модуль использует для управления состоянием при превышении лимитов запросов.
Она принимает до трёх аргументов: unix_socket, port=[number] и requirepass=[password]. unix_socket предоставляет способ подключения к серверу Redis через Unix-сокет, тогда как параметр port указывает номер порта для TCP-подключений к Redis, по умолчанию 6379. Если Redis настроен на требование аутентификации, можно использовать опцию requirepass для указания необходимого пароля. Такая гибкость позволяет работать в разных сценариях развёртывания, включая случаи, когда Redis защищён аутентификацией или требуются разные методы подключения.
Подключение к Redis играет ключевую роль в поддержании состояния запросов, обеспечивая эффективное ограничение скорости за счёт доступа к общим данным между несколькими рабочими процессами NGINX. Неправильная конфигурация этой директивы может привести к проблемам, таким как невозможность связи с Redis, что помешает работе механизма динамического ограничения запросов.
Пример конфига
dynamic_limit_req_redis unix_socket requirepass=comeback; dynamic_limit_req_zone $binary_remote_addr zone=sms:5m rate=5r/m redis=/tmp/redis.sock block_second=1800; dynamic_limit_req zone=sms burst=3 nodelay;
Убедитесь, что сервер Redis запущен и доступен для NGINX.
Проверьте права доступа к Unix socket, если используется подключение unix_socket.
Пароль аутентификации Redis должен быть корректным, чтобы избежать сбоев соединения.