Maxim Dounin
October 18, 2016 09:38AM
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
Subject Author Posted

Работает ли переменная $upstream_addr директиве limit_req_zone?

nerjin October 18, 2016 08:23AM

Re: Работает ли переменная $upstream addr директиве limit req zone?

Maxim Dounin October 18, 2016 09:38AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 159
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready