limit_conn_zone
Директива 'limit_conn_zone' создаёт область разделяемой памяти для ограничения количества одновременных подключений по указанному ключу. — NGINX HTTP Core
Описание
Директива 'limit_conn_zone' используется в контексте HTTP для определения зоны памяти, где можно отслеживать количество подключений по заданному ключу (например, по удалённому адресу). Она позволяет установить ограничения на количество одновременно открытых подключений с одного IP‑адреса или по любому другому параметру, что помогает уменьшить злоупотребления или исчерпание ресурсов из‑за чрезмерного числа подключений. Директива принимает два аргумента: первый — ключ, который обычно использует переменные, такие как '$binary_remote_addr' для ссылки на удалённый адрес клиента, или '$servername' для ограничений по имени сервера. Второй аргумент определяет размер зоны разделяемой памяти (например, '10m' для 10 мегабайт). Эта зона памяти используется для хранения счётчиков подключений для указанных клиентов, обеспечивая эффективное отслеживание и ограничение подключений в реальном времени. В сочетании с директивой 'limit_conn' администраторы могут указать, сколько одновременных подключений разрешено для каждого ключа, повышая безопасность и производительность. Установленные ограничения по памяти гарантируют, что это отслеживание будет эффективным без чрезмерного потребления ресурсов.
Пример конфига
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 10;
}
}
}Убедитесь, что размер зоны соответствует объёму вашего трафика; слишком маленькая зона может привести к ошибочным подсчётам подключений.
Не забудьте определить директиву 'limit_conn' в блоке server или location, чтобы после настройки зоны ограничение действительно вступило в силу.