Конфигурация зон лимитов Nginx (limit_req_zone и limit_conn_zone против L7 DDoS)

Обновлено: Август 2026 Стек: Nginx 1.22+ Проверено: Production-Ready

Конфиг Nginx limit_req_zone и limit_conn_zone: ограничение числа запросов с одного IP, защита от HTTP-флуда, парсинга и перегрузки PHP-бэкенда.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/nginx/conf.d/rate_limits.conf
# /etc/nginx/conf.d/rate_limits.conf
# Зоны лимитов запросов (10MB хранит ~160 000 IP адресов)
limit_req_zone $binary_remote_addr zone=general_limit:10m rate=15r/s;
limit_req_zone $binary_remote_addr zone=search_limit:10m rate=3r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

# В блоке server {} вашего сайта:
# limit_conn conn_limit 20;
# limit_req zone=general_limit burst=30 nodelay;
# limit_req_status 429;

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
limit_req rate=15r/s 15r/s Максимальная средняя частота запросов от одного пользователя.
burst=30 nodelay burst=30 Разрешает всплеск до 30 запросов (загрузка картинок, CSS, JS) без задержки.
limit_req_status 429 429 Возвращает корректный HTTP-код '429 Too Many Requests' вместо 503.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 2 vCPU, 2-4 GB RAM, Nginx Web VDS
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2 vCPU / 2-4 GB RAM / 30 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2 vCPU / 2-4 GB RAM / 30 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
2 vCPU / 2-4 GB RAM / 30 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Не заблокирует ли это поисковых ботов?
Используйте модуль `geo` или директиву `limit_req_whitelist` для исключения ботов Яндекса и Google.
Как не заблокировать собственный IP адрес?
Добавьте ваш IP в директиву `ignoreip = 127.0.0.1/8 ::1 ВАШ_IP` в файле `/etc/fail2ban/jail.local`.
Как разблокировать ошибочно забаненный IP?
Выполните команду `fail2ban-client set <jail_name> unbanip <IP_ADDRESS>`.