Hello!
On Tue, Oct 18, 2016 at 08:23:01AM -0400, nerjin wrote:
> Хотелось ограничивать скорость запросов на каждый upstream. Пытался сделать
> вот так:
>
> limit_req_zone $upstream_addr zone=low_speed:10m rate=1r/s;
>
> Но скорость так не ограничивалась.
>
> Вопрос: работает ли тут переменная $upstream_addr и если нет, то как можно
> такое ограничение реализовать?
Так работать не будет, т.к. $upstream_addr - это переменная, в
которой содержатся адреса выбранных для работы бекендов, и
какое-либо осмысленное значение в ней появляется только того, когда
бекенд выбран и запрос отправляется на него.
Если по какой-то причине хочется ограничивать именно частоту
запросов на конкретные бекенды - запросы надо разделить между
бекендами заранее, чтобы в момент работы limit_req было известно,
какой именно бекенд будет использован. Это можно сделать,
например, с помощью модуля split_clients, ну или совсем общий
вариант - с помощью дополнительного проксирования.
--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru