@Drammm

Limit_req_zone «для всех остальных» в NGINX?

Господа, помогите понять как можно прописать Limit_req_zone так сказать для "для всех остальных", не вошедших в описанные условия?
Вот пример
в http
map $server_protocol $limit {
        "HTTP/1.0"     $binary_remote_addr;
        default    "";
     } 
	limit_req_zone $limit zone=bot:10m rate=1r/m;

в сервер
limit_req zone=bot;и все работает
Но стоит добавить в http ниже еще один лимит
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

+ в сервер
limit_req zone=one burst=5 nodelay;
как они становятся главными и limit_req_zone из других условия перестают выполняться.

Вопрос: - как прописать парочку limit_req_zone для нужных мне условий, а потом еще один limit_req_zone "для всех остальных"?
  • Вопрос задан
  • 1814 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dubart
nginx.org/ru/docs/http/ngx_http_limit_req_module.html

Директив limit_req может быть несколько. Например, следующая конфигурация ограничивает скорость обработки запросов, поступающих с одного IP-адреса, и в то же время ограничивает скорость обработки запросов одним виртуальным сервером:

limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
limit_req_zone $server_name zone=perserver:10m rate=10r/s;

server {
...
limit_req zone=perip burst=5 nodelay;
limit_req zone=perserver burst=10;
}
Директивы наследуются с предыдущего уровня при условии, что на данном уровне не описаны свои директивы limit_req.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы