как ограничить число одновременных соединений по сетевой маске

Igor Sysoev is at rambler-co.ru
Thu Feb 14 17:34:42 MSK 2008


On Thu, Feb 14, 2008 at 04:21:53PM +0200, Vladimir Fursin wrote:

> Thursday, February 14, 2008, 12:31:11 PM, you wrote:
> 
> > On Thu, Feb 14, 2008 at 05:20:59AM -0500, Denis S. Filimonov wrote:
> 
> >> Может это и не очень хорошее решение, но нечто подобное у меня работает.
> >> 
> >> limit_zone   one  $my_addr  32k;
> >> server {
> >>   if ($remote_addr ~ "^(\d+\.\d+\.\d+)") {
> >>     set $my_addr $1;
> >>   }
> >>   limit_conn one 1;
> >> }
> 
> > Ещё вариант:
> 
> >     if ($binary_remote_addr ~ "^(...)") {
> Спасибо за решения, но мне нужно дифференцированные ограничения,
> т.е. подсети разных клиентов должны ограничиваться по-разному.
> Какая подсеть и какое для нее ограничение становится известно в
> php-скрипте на бэкэнде после обработки $uri. Может ли как то
> апач передать эти значения в переменные конфига nginx, чтобы
> "на обратном пути" использовать их для задания ограничения?

Нет.

> Если нет, то мне, скорее всего, вообще придется отказаться от
> использования апача, а обрабатывать $uri прямо в конфиге
> встроенным perl. Но тогда все равно остается вопрос - как
> через переменную установить к-во соединений в limit_conn.
> Это возможно?

Нет. Маскисмальное число соединений статично.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list