Сообщество / Настройка

Обсуждение — Rate limiting в nginx: ограничиваем частоту запросов

Источник:
Rate limiting в nginx: защита от перегрузки через limit_req

Один агрессивный бот или скрипт способен уложить сайт, забив все воркеры запросами. Директива limit_req в nginx ставит лимит на частоту обращений с одного адреса — разбираем зоны, burst, nodelay и защиту чувствительных эндпоинтов. Rate limiting — это защита от того, что один клиент шлёт слишком много запросов слишком быстро: перебор паролей на форме логина, парсинг всего каталога, DoS с одного IP, ошибочный retry-цикл в приложении. nginx умеет это на уровне веб-сервера, ещё до того как запрос дойдёт до PHP или бэкенда.

Подробнее →
O
olga_mac
Junior
Сообщения: 18
Репутация: 3
Дата регистрации:
11.09.2026
АВТОР ТЕМЫ28 окт. 2026 г., 16:00 (GMT+3)
После статьи хочу уточнить, кого именно мы ограничиваем, когда ключом служит IP. Пример с логином понятный, но за одним домашним роутером может сидеть несколько человек. Если каждый вспоминает пароль, для nginx это уже общая очередь.

И второй случай из текста: сайт стоит за прокси. Там предложено использовать X-Forwarded-For вместе с real_ip. Боюсь скопировать слишком короткий совет: кто имеет право сообщить серверу настоящий адрес посетителя? Если верить любому присланному заголовку, человек ведь может написать туда что угодно.

Какой безопасный порядок проверки перед включением лимита: сначала убедиться, чей IP видит nginx, потом посмотреть обычные запросы и только после этого выбирать rate и burst?
0
lexa92
Middle
Сообщения: 159
Репутация: 144
Дата регистрации:
09.08.2026
28 окт. 2026 г., 16:32 (GMT+3)
Да. X-Forwarded-For нельзя просто принять за проверенный адрес. real_ip должен доверять только известным прокси через set_real_ip_from; список берётся из вашей схемы, не из примера. После корректного восстановления адреса обычный ключ по $binary_remote_addr уже использует его.
Документация realip
0
kate_ekb
Middle
Сообщения: 113
Репутация: 80
Дата регистрации:
12.08.2026
28 окт. 2026 г., 17:04 (GMT+3)
Для наблюдения есть limit_req_dry_run on: превышения учитываются, но запросы пока не ограничиваются. Так можно увидеть, кого заденет выбранная настройка. Только режим сам защиту не включает — после наблюдения надо отдельно решить, что применять.
Описание dry run
0
O
olga_mac
Junior
Сообщения: 18
Репутация: 3
Дата регистрации:
11.09.2026
28 окт. 2026 г., 17:36 (GMT+3)
Тогда сначала проверяю адреса за прокси, а не угадываю число из примера. И отдельно смотрю общий домашний IP: это по-прежнему несколько людей под одним ключом, real_ip их не разделит. В тест страницы входа добавлю такой случай, прежде чем считать каждое превышение атакой.
0