@sechin

Как в nginx исключить из limit_req запросы с query_string?

использую для основного location
location / {
limit_req zone=bot burst=10 nodelay;
}

Если нужно не ограничивать количество запросов к какому то из каталогов, можно его прописать ниже отдельным location, например
location /images {
}

А вот как не ограничивать запросы с, допустим, не пустым query_string? Они ведь в данном примере все равно попадут в какой то из location, и если это будет запрос /?get=1, то он будет ограничиваться правилом bot.
Из того, что я нашел, query_string нельзя с location соотнести, только костылем.
  • Вопрос задан
  • 307 просмотров
Решения вопроса 1
@dodo512
nginx.org/ru/docs/http/ngx_http_limit_req_module.h...
В качестве ключа можно использовать текст, переменные и их комбинации. Запросы с пустым значением ключа не учитываются.


Допустим было так:
limit_req_zone $key zone=bot:10m rate=1r/s;
Нужно c помощью map создать новую переменную, например, $key_ которая будет возвращать пустую строку в качестве ключа для limit_req_zone если в $args что-то есть.
map $args   $key_ {
    ""      $key;
    default "";
}
limit_req_zone $key_ zone=bot:10m rate=1r/s;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы