<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v =
"urn:schemas-microsoft-com:vml" xmlns:o =
"urn:schemas-microsoft-com:office:office" xmlns:w =
"urn:schemas-microsoft-com:office:word"><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<TITLE>Сообщение</TITLE>
<META content="MSHTML 6.00.3790.1039" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
BEHAVIOR: url(#default#VML)
}
o\:* {
BEHAVIOR: url(#default#VML)
}
w\:* {
BEHAVIOR: url(#default#VML)
}
.shape {
BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]-->
<STYLE>@font-face {
font-family: Tahoma;
}
@page Section1 {size: 595.3pt 841.9pt; margin: 2.0cm 42.5pt 2.0cm 3.0cm; }
P.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
COLOR: blue; TEXT-DECORATION: underline
}
SPAN.EmailStyle18 {
COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply
}
DIV.Section1 {
page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=RU vLink=blue link=blue>
<DIV><SPAN class=509092910-11032006><FONT face=Arial color=#0000ff>Это малость
более кровожадно, чем следовало бы. По-настоящему актуальная задача - ограничить
число АКТИВНЫХ соединений. К примеру, нужно обеспечить каждого клиента одним
соединением с бэкэндом. При этом не важно, сколько соединений у него к статике и
уж тем более не нужно давать отлуп для второго и прочих соединений. Просто
каждому клиенту выделить один активный сокет, а остальные в режиме ожидания, как
делает апач при исчерпании maxclients и, видимо, nginx при загруженности всех
воркеров. Но сейчас очередь обработки живет своей жизнью, а вот в ней бы было
здорово порядок наводить - кого-то всегда ставить в конец, кому-то позволять
захватывать несколько воркеров, а кому-то - только один. Ну и
т.д.</FONT></SPAN></DIV>
<DIV><SPAN class=509092910-11032006><FONT face=Arial color=#0000ff>Сейчас такую
задачу решить в принципе невозможно, приходится делать что-то подобное, ставя
между фронтэндом и бэкэндом на разных потоках еще апач с maxclients 5, скажем.
По крайней мере можно гарантировать, что на бэкэнд не посыслятся подключения с
низкоприоритетного потока и этот поток не сожрет все ресурсы. Но даже
такое нагромождение требуемого эффекта не дает - один герой может сожрать
весь поток, причем даже без злого умысла. Уж не говоря про накладные расходы,
геморой по администрированию и устойчивость.</FONT></SPAN></DIV>
<DIV><SPAN class=509092910-11032006><FONT face=Arial color=#0000ff>Вообще,
гибкий инструмент с регуляцией числа http-соединений нужен и никакие
IPTABLES с reject тут не помогут. И то, что тема ограничения числа соединений
всплывает с завидным постоянством - тому подтверждение. Десятое
подключение можно отреджектить, но второе же так убивать нельзя. Я бы
даже на четвертое руку не поднял.</FONT></SPAN></DIV><!-- Converted from text/plain format --><BR>
<P><FONT size=2>D&C GameMaster<BR>www.the-game.ru </FONT></P>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV></DIV>
<DIV class=OutlookMessageHeader lang=ru dir=ltr align=left><FONT face=Tahoma
size=2>-----Original Message-----<BR><B>From:</B> Majordomo Pseudo User
[mailto:majordom@ontico.ru] <B>On Behalf Of </B>Дмитрий<BR><B>Sent:</B>
Saturday, March 11, 2006 12:44 PM<BR><B>To:</B>
nginx-ru@sysoev.ru<BR><B>Subject:</B> RE: Ограничение активных коннектов на
один ip адрес<BR><BR></FONT></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Для</SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> <SPAN
lang=EN-US>iptable </SPAN></SPAN></FONT><FONT face=Arial color=navy
size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">можна</SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> </SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">использовать</SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN lang=EN-US
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN lang=EN-US
style="FONT-SIZE: 12pt">iptables -A INPUT-p tcp --dport 80 -m iplimit
--iplimit-above 10 -j REJECT</SPAN></FONT></P></DIV></BLOCKQUOTE></BODY></HTML>