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