ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Ограничение на число одно временных соединений, но с поста новкой лишних в очередь
  • From: Dmitry Koterov <dmitry@xxxxxxxxxx>
  • Date: Sat, 21 Nov 2009 04:48:00 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=kxd3/KEivTqNTsOSMPBwjZtmFh4oMOMRxDML0nxRyp4=; b=GpKrSd+QuPw6JLYoffN8xXOho8Rn6JtnwK3Byuhl6ZaJuflsjB4aSkw05Ec1TPAa1p qHryoRukXUZ6jbrKoeRSCB0VdkCq5bwDKNX5GjG8/9azco3J39kqD/9e1a+2C4Xyfiqi n3UTeqHPlGj7fUeZV3LceWddP5BIAztal5S20=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=Z6VPz6/FKJMwd2Jl+Yy9KpI8O7BZJOSsZ+ECdNKemSBuX9AFKx97VPP8bwfeWlXbFI kCxGf+pxN1eqTDXgT4m6BmCPpN/bVI1EB0TqUqMy3lgD6QCPLzZNrmMFNtVpZaX0ImYY B9HGiospT6Rt8+3VT9vmbkPWv8M6SVq85+04U=
  • In-reply-to: <4B025C6B.8040602@xxxxxxxxx>
  • References: <d7df81620911161146s2c4066bav6619eb4541de26e1@xxxxxxxxxxxxxx> <d7df81620911161335ha80ebaaq3733bc85adb08ac0@xxxxxxxxxxxxxx> <4B025C6B.8040602@xxxxxxxxx>

Спасибо за советы!

Что касается backlog на стороне сокета, то видите ли, какая штука... ограничение нужно не per-socket, а per-HTTP_HOST (грубо говоря). Т.е. на одном IP висит много виртуальных хостов, и на каждый должно идти, скажем, не больше 5 одновременных коннектов (а на весь сокет - ограничения нет). Можно, конечно, каждый хост на свой внутренний IP повесить, но хочется чего-то более универсального.

Про haproxy я и не подумал... В нем точно можно вот так сделать, когда на одном и том же IP висят несколько виртуальных хостов, и ограничение установлено по каждому?



2009/11/17 Gena Makhomed <gmm@xxxxxxxxx>
Dmitry Koterov wrote:

Требуется ограничить именно число коннектов к backend-ам, так, чтобы входящие соединения вставали в очередь, если все backend-ы заняты.

такая функциональность встроена в TCP/IP, это регулируется на backend`ах
параметр backlog - "number of pending connections that can be queued up"

http://en.wikipedia.org/wiki/Berkeley_sockets#listen.28.29

наверное проще будет настроить на backend`ах параметр backlog,
чем дублировать в nginx функциональность из TCP/IP стека ядра.


   Как известно, директива limit_conn позволяет ограничивать
   одновременной число соединений к той или иной зоне. Однако, когда
   это число превышается, nginx выдает 503.

   Есть ли в nginx какое-то средство, которое бы позволило ставить
   "лишние" запросы в очередь, а не давать им отлуп? Например, я хочу,
   чтобы на backend шло одновременно не более 5 соединений, а все
   остальные ставились nginx-ом в очередь.

в новых версиях PHP дефолтовый backlog уже увеличили с 5 до 128.

--
Best regards,
 Gena





 




Copyright © Lexa Software, 1996-2009.