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

Alexey V. Karagodov kav at karagodov.name
Thu Feb 14 19:54:29 MSK 2008


попробуйте ограничивать на уровне TCP/IP  
средствами ОС

On 14.02.2008, at 17:34, Igor Sysoev wrote:

> 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