RE: Ограничение активных коннектов на один ip адрес

GribUser grib at gribuser.ru
Sat Mar 11 13:47:37 MSK 2006


Это малость более кровожадно, чем следовало бы. По-настоящему актуальная
задача - ограничить число АКТИВНЫХ соединений. К примеру, нужно
обеспечить каждого клиента одним соединением с бэкэндом. При этом не
важно, сколько соединений у него к статике и уж тем более не нужно
давать отлуп для второго и прочих соединений. Просто каждому клиенту
выделить один активный сокет, а остальные в режиме ожидания, как делает
апач при исчерпании maxclients и, видимо, nginx при загруженности всех
воркеров. Но сейчас очередь обработки живет своей жизнью, а вот в ней бы
было здорово порядок наводить - кого-то всегда ставить в конец, кому-то
позволять захватывать несколько воркеров, а кому-то - только один. Ну и
т.д.
Сейчас такую задачу решить в принципе невозможно, приходится делать
что-то подобное, ставя между фронтэндом и бэкэндом на разных потоках еще
апач с maxclients 5, скажем. По крайней мере можно гарантировать, что на
бэкэнд не посыслятся подключения с низкоприоритетного потока и этот
поток не сожрет все ресурсы. Но даже такое нагромождение требуемого
эффекта не дает - один герой может сожрать весь поток, причем даже без
злого умысла. Уж не говоря про накладные расходы, геморой по
администрированию и устойчивость.
Вообще, гибкий инструмент с регуляцией числа http-соединений нужен и
никакие IPTABLES с reject тут не помогут. И то, что тема ограничения
числа соединений всплывает с завидным постоянством - тому подтверждение.
Десятое подключение можно отреджектить, но второе же так убивать нельзя.
Я бы даже на четвертое руку не поднял.


D&C GameMaster
www.the-game.ru 

-----Original Message-----
From: Majordomo Pseudo User [mailto:majordom at ontico.ru] On Behalf Of
Дмитрий
Sent: Saturday, March 11, 2006 12:44 PM
To: nginx-ru at sysoev.ru
Subject: RE: Ограничение активных коннектов на один ip адрес



Для iptable можна использовать:

iptables -A INPUT-p tcp --dport 80 -m iplimit --iplimit-above 10 -j
REJECT

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20060311/a1cf4f38/attachment.html>


More information about the nginx-ru mailing list