Re[2]: как ограничить число одновременных соединений по сетевой маске
Vladimir Fursin
fursin at optima.ua
Thu Feb 14 17:21:53 MSK 2008
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.
Это возможно?
С уважением, Владимир.
--
mailto:fursin at optima.ua
>> On Thursday 14 February 2008 04:42:59 Vladimir Fursin wrote:
>> > Здравствуйте, nginx-ru.
>> >
>> > Для контролируемого скачивания используется
>> > nginx-proxy + apache-backend. В php-скрипте апач
>> > проверяет, в числе прочего, имеет ли $remote_addr
>> > права на доступ, сравнивая его с маской подсети клиентов.
>> > Стоит задача ограничить число одновременных соединений
>> > так же в расчете на подсеть. Правильно ли я понял, что
>> > средствами ngx_http_limit_zone_module можно задать
>> > ограничение только в расчете на один IP? Если нет, то
>> > подскажите, пожалуйста, как это сделать?
>> > Спасибо.
>> >
>> > С уважением, Владимир.
>> > --
>> > mailto:fursin at optima.ua
>>
>>
>>
>> --
>> Denis.
More information about the nginx-ru
mailing list