Тема
Режим
Язык
Тема
Режим
Язык
Консультация
FREE Бесплатный аудит сайта за 15 мин Заказать →
NEW Остановили 2 млн атак credential stuffing Кейс →
Разборы атак и инструменты Telegram →
70% трафика могут быть ботами Проверить →
SOS Сайт под атакой? Поможем за 30 мин SOS →

Базовые правила rate-limit: примеры для nginx

Набор стартовых лимитов для логина, поиска и API. Копируй и адаптируй под себя.

Rate-limit — первая линия защиты от ботов, брутфорса и простых DDoS-атак. Настраивается за 10 минут, работает годами.

flowchart TD
    Req[Запрос] --> Check{Лимит?}
    Check -->|"OK"| Allow[Пропустить]
    Check -->|"Превышен"| Burst{Burst?}
    Burst -->|"OK"| Queue[В очередь]
    Burst -->|"Нет"| Reject[429 Error]
    Queue --> Allow
Логика rate limiting в nginx
⚠️
Важно
Эти правила — стартовая точка. Подстраивайте числа под свой трафик. Для более сложной защиты настройте WAF-правила.
01

Базовая настройка

Добавьте в nginx.conf
nginx.conf — http блок
http {\n    # Зона для общих запросов: 10 req/sec на IP\n    limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;\n    \n    # Зона для логина: 1 req/sec (жёстко)\n    limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;\n    \n    # Зона для API: 30 req/sec\n    limit_req_zone $binary_remote_addr zone=api:10m rate=30r/s;\n    \n    # Зона для поиска: 5 req/sec\n    limit_req_zone $binary_remote_addr zone=search:10m rate=5r/s;\n}
02

Применение к location

Защищаем критичные endpoint
site.conf — server блок
# Защита логина (WordPress)\nlocation = /wp-login.php {\n    limit_req zone=login burst=3 nodelay;\n    # ... остальные директивы\n}\n\n# Защита админки\nlocation /wp-admin/ {\n    limit_req zone=login burst=5 nodelay;\n    # ... остальные директивы\n}\n\n# Защита API\nlocation /api/ {\n    limit_req zone=api burst=50 nodelay;\n    proxy_pass http://backend;\n}\n\n# Защита поиска\nlocation /search {\n    limit_req zone=search burst=10 nodelay;\n    # ...\n}

10 запросов в секунду с одного IP. Если больше — nginx вернёт 503.

«Запас» запросов. burst=20 разрешает всплеск до 20 запросов сверх лимита. Полезно для реальных пользователей.

Без nodelay nginx задерживает запросы в очереди. С nodelay — сразу 503. Для защиты лучше nodelay.

Проверка
После изменений: nginx -t && systemctl reload nginx. Тестируйте: ab -n 100 -c 10 https://site.com/wp-login.php
💡
Совет
Добавьте limit_req_log_level warn; чтобы видеть в логах, когда срабатывают лимиты.

Тест: Базовые правила rate-limit: примеры для nginx

Вопрос 1 из 3
Что такое rate-limit?
Rate-limit ограничивает количество запросов за время.
От чего защищает rate-limit?
Rate-limit — первая линия защиты от ботов и брутфорса.
Сколько времени занимает настройка rate-limit в nginx?
Настраивается за 10 минут, работает годами.
0 / 3

Получите план защиты под ваш сайт

Оставьте контакт и адрес сайта — пришлём план защиты и список приоритетных шагов.

  • Приоритетные шаги на 7 дней
  • Быстрая обратная связь
  • План в удобном формате
Без спама. Можно указать Telegram (@username) или email.
Написать в Telegram