Welcome! Log In Create A New Profile

Advanced

Re: limit conn счетчик переполнение

Maxim Dounin
April 17, 2015 08:58AM
Hello!

On Fri, Apr 17, 2015 at 06:06:49AM -0400, dwow wrote:

> Добрый день.
>
> Была задача ограничить кол-во запросов к бэкенду. Например, чтобы
> одновременно не поступало более 1 запроса. Остальные запросы, пока работает
> бэкенд, могли отваливаться по ошибке, это не страшно.
> С помощью Perl я устанавливал переменную, которая показывала идет ли запрос
> для проксирования на бэкенд или нет. И эту переменную использовал в качестве
> ключа для
> http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html#limit_conn_zone
>
> perl_set $service_hit '
> sub {
> my $r = shift;
> if($r->uri =~ m|^/services/post|){
> return "services";
> } else {
> return "";
> }
> }
> ';
> limit_conn_zone "$service_hit" zone=perservice:10m;

Just a side note: не надо делать так, вместо этого правильно
написать отдельный location, в котором и задать ограничение.

> Потом перед проксированием на бэкенд (в location) использовал ограничениие
> http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html#limit_conn
>
> limit_conn perservice 1;
>
> Все отлично работает, но только первые 30-60 минут, потом nginx для всех
> запросов возвращает 503 ошибку, т.е. счетчик не сбрасывается. Если
> остановить-запустить nginx, то опять какое-то время все работает корректно.
> В чем может быть проблема?

Скорее всего проблема в том, что limit_conn органичивает не
соединения на бекенду, а активные соединения. Соответственно,
если кто-то сходил на бекенд, получил оттуда достаточно большой
ответ и неспеша забирает его у nginx'а - ограничение будет
продолжать срабатывать. Например, если клиент сделал запрос
(ответ на который не помещается в буфер сокета), после чего пропал
и на пакеты не отвечает - ограничение будет срабатывать, пока не
случится send_timeout.

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: limit conn счетчик переполнение

Maxim Dounin April 17, 2015 08:58AM

Re: limit conn счетчик переполнение

dwow April 17, 2015 09:15AM

Re: limit conn счетчик переполнение

Maxim Dounin April 17, 2015 10:54AM

Re: limit conn счетчик переполнение

dwow April 17, 2015 12:28PM

Re: limit conn счетчик переполнение

Maxim Dounin April 17, 2015 01:06PM

Re: limit conn счетчик переполнение

Gena Makhomed April 17, 2015 01:54PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 118
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready