Skip to content

Nginx rate limiting: zones, burst, 429

Коротко:

2 директивы: limit_req_zone определяет пул (ключ + память + rate), limit_req активирует в location. 10 MB зоны = ~160k уникальных IP в RAM. Добавьте burst для короткого всплеска (burst=20 nodelay — принимает 20 без delay, затем rate limit). Возвращает 429 по умолчанию; логируйте в кастомный log, натравите fail2ban для бан-листа.

Ниже: подробности, пример, смежные термины, FAQ.

Попробовать бесплатно →

Детали

  • limit_req_zone $binary_remote_addr zone=api:10m rate=60r/m — пул
  • limit_req zone=api burst=20 nodelay — в location
  • limit_req_status 429 — иначе 503 default
  • limit_conn — параллельные соединения (не запросы)
  • Логи: log_format includes $limit_req_status для fail2ban filter

Пример

# /etc/nginx/conf.d/rate-limits.conf
limit_req_zone  zone=api:10m rate=60r/m;
limit_req_zone  zone=login:10m rate=5r/m;
limit_req_status 429;

server {
  location /api/ {
    limit_req zone=api burst=20 nodelay;
    proxy_pass http://backend;
  }
  location /login {
    limit_req zone=login burst=3 nodelay;
    proxy_pass http://backend;
  }
}

# fail2ban filter (jail.d/nginx-rate.conf)
[Definition]
failregex = limiting requests, excess.*client: <HOST>

Связанные

ЗаголовкиCSP, HSTS, X-Frame-Options и др.
SSL/TLSШифрование и сертификат
КонфигурацияСерверные настройки и утечки
Оценка A-FОбщий балл безопасности

Почему нам доверяют

OWASP
рекомендации
15+
заголовков безопасности
<2с
результат
A–F
оценка безопасности

Как это работает

1

Введите URL сайта

2

Анализ заголовков безопасности

3

Получите оценку A–F

Что проверяет анализ безопасности?

Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.

Анализ заголовков

Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.

Проверка SSL

Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.

Обнаружение утечек

Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.

Отчёт с рекомендациями

Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.

Кому это нужно

Специалисты по безопасности

аудит HTTP-заголовков

DevOps

проверка конфигурации

Разработчики

CSP и HSTS настройка

Аудиторы

соответствие стандартам

Частые ошибки

Нет Content-Security-PolicyCSP — главная защита от XSS. Без него инъекция скриптов значительно проще.
Нет заголовка HSTSБез HSTS возможна downgrade-атака с HTTPS на HTTP. Включите Strict-Transport-Security.
Server header раскрывает версиюServer: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.
X-Frame-Options не установленСайт можно встроить в iframe для clickjacking-атаки. Установите DENY или SAMEORIGIN.
Нет X-Content-Type-OptionsБез nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).

Лучшие практики

Начните с базовых заголовковМинимум: HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy. Займёт 5 минут.
Внедрите CSP постепенноНачните с Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.
Скройте серверные заголовкиУдалите Server, X-Powered-By, X-AspNet-Version из ответов.
Настройте Permissions-PolicyОграничьте доступ к камере, микрофону, геолокации — только то, что реально используется.
Проверяйте после каждого деплояЗаголовки безопасности могут быть перезаписаны при обновлении конфигурации сервера.

Получите больше с бесплатным аккаунтом

История security-проверок и мониторинг HTTP-заголовков безопасности.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Rate per IP или per user?

Per IP быстрее (binary_remote_addr в ключе). Per user — после аутентификации через $cookie_session или $jwt_claim.

X-Forwarded-For?

Позади CDN — real_ip_header + set_real_ip_from. Иначе всё банится на CDN IP.

limit_req vs CF / AWS WAF?

CF / WAF — защита от L7 DDoS (10k+ RPS). nginx limit_req — локальный fair-use + slow-brute protection.