Welcome! Log In Create A New Profile

Advanced

limit_conn счетчик переполнение

April 17, 2015 06:06AM
Добрый день.

Была задача ограничить кол-во запросов к бэкенду. Например, чтобы одновременно не поступало более 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;

Потом перед проксированием на бэкенд (в location) использовал ограничениие
http://nginx.org/ru/docs/http/ngx_http_limit_conn_module.html#limit_conn

limit_conn perservice 1;

Все отлично работает, но только первые 30-60 минут, потом nginx для всех запросов возвращает 503 ошибку, т.е. счетчик не сбрасывается. Если остановить-запустить nginx, то опять какое-то время все работает корректно. В чем может быть проблема?

Спасибо.
Subject Author Posted

limit_conn счетчик переполнение

dwow April 17, 2015 06:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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