Welcome! Log In Create A New Profile

Advanced

limit_req и белый список

Sergey Novikov
September 18, 2009 06:00PM
Здравствуйте.

Хочется выборочно использовать limit_req, но не для всех IP, так как
на некоторых одновременно может быть много пользователей (и много
запросов).

Придумал такую конструкцию:

http {
# Список адресов, для которых отвечаем без ограничений
geo $whitelist {
default no;
80.239.224.0/24 opera;
# и т.д.
}

limit_req_zone $binary_remote_addr zone=backend:10m rate=10r/s;
}

location /
{
if ($whitelist = no) {
limit_req zone=backend burst=20;
}
}

Не знаю, правильна ли эта конструкция с geo, но надеюсь моя мысль ясна
- для неизвестных ip
установить ограничение.

Проблема в том, что nginx сообщает:
# nginx -t
[emerg]: "limit_req" directive is not allowed here in ...

Если убрать if, то все в порядке, но теряется смысл списка.
limit_req zone=backend burst=$var; кажется, тоже не работает...

Придумать среднее значения для всех не получается.

Скажите, можно ли как-то это сделать?
Subject Author Posted

limit_req и белый список

Sergey Novikov September 18, 2009 06:00PM

Re: limit_req и белый список

Alex, the Marrch Ca'at September 18, 2009 07:38PM

Re: limit_req и белый список

Sergey Novikov September 19, 2009 05:22PM

Re: limit_req и белый список

Maxim Dounin September 19, 2009 08:46PM

Re: limit_req и белый список

Maxim Dounin September 20, 2009 01:42PM

Re: limit_req и белый список

Sergey Novikov September 20, 2009 01:42PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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