Валентин Бартенев
March 21, 2013 08:16PM
On Friday 22 March 2013 00:51:47 cat wrote:
> Приветствую.
> Пусть есть простой запрос:
>
> http://127.0.0.1/api?username=testuser
>
> Хочу ограничивать кол-во cоединений в единицу времени в зависимости от
> имени пользователя в параметре: кому-то разрешить больше запросов, кому-то
> меньше. В идеале это выглядело бы как-то так:
>
> ###
> map $arg_username $limits {
> bob 100;
> alice 300;
> default 10;
> }
>
> limit_req_zone $limits zone=per_user_limit:10m rate=$limitsr/s;
> ###
>
> Если бы не ошибка:
>
> 2013/03/21 22:34:25 [emerg] 17212#0: invalid rate "rate=$limitsr/m" in
> /etc/nginx/nginx.conf:44
>
> Есть ли способ выставлять rate для limit_req_zone динамически?
>

Иными словами вы хотите описать несколько зон с разным rate. Да, конечно
это возможно:

map $arg_username $is_bob {
bob 1;
}

map $arg_username $is_alice {
alice 1;
}

map $arg_username $is_default {
dafault 1;
bob "";
alice "";
}

limit_req_zone $is_bob zone=user_bob:32k rate=100r/s;
limit_req_zone $is_alice zone=user_alice:32k rate=300r/s;
limit_req_zone $is_default zone=default_limit:32k rate=10r/s;

location / {
limit_req zone=default_limit;
limit_req zone=user_bob;
limit_req zone=user_alice;
}

--
Валентин Бартенев
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: переменный limit req zone

Валентин Бартенев March 21, 2013 08:16PM

Re: переменный limit req zone

cat March 22, 2013 05:28AM

Re: переменный limit req zone

Валентин Бартенев March 22, 2013 05:36AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 280
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