Re: deferred и bind и много виртуальных хостов

Nick Knutov mail на knutov.com
Пт Май 4 07:16:41 UTC 2012


Не совсем понял. У меня конфиг выглядит примерно так:
server {
	listen 1.2.3.4:80;
	server_name a b c d;
	[...]
}
Процитированное повторяется многократно с разными server_name.

Я должен указать deferred только для самого первого вхождения listen 
1.2.3.4:80?

Что будет, если указать для всех?

Будет ли bind для каждого server{} отдельно, если указать только для 
первого вхождения?

Если использование deferred не хорошо, а у нас везде только 
линукс/openvz (и, следовательно, нет возможсности использовать 
httpready), то что же тогда использовать вместо?


04.05.2012 11:59, Igor Sysoev написал:
> On Fri, May 04, 2012 at 11:48:50AM +0600, Nick Knutov wrote:
>> Из документции:
>>
>> deferred
>>    указывает использовать отложенный accept() на Linux с помощью опции
>> TCP_DEFER_ACCEPT.
>>
>> bind
>>    указывает, что для данной пары адрес:порт нужно делать bind()
>> отдельно. [...] в этом случае для определения адреса, на которой пришло
>> соединение, делается системный вызов getsockname(). Если же используются
>> параметры [...], deferred или so_keepalive, то для данной пары
>> адрес:порт всегда делается отдельный вызов bind().
>>
>> Вопрос: виртуальный хостинг, сотни/тысячи server{}, если у каждого
>> listen прописать deffered - это как-то скажется [значительно] на
>> потребление процессора, памяти или чего-то ещё? Или в этом случае лучше
>> сделать отдельный фронтенд с nginx с listen *.80 deferred, который будет
>> проксировать на основной nginx, который как сейчас (с перевешиванием,
>> например, на unix socket), который уже будет проксировать на разные
>> бэкенды дальше?
>
> deferred указывается один раз для listen-пары, то есть,
>
> server {
>      listen 80 deferred;
>      server_name _;
> }
>
> server {
>      listen 80;
>      server_name a;
> }
>
> server {
>      listen 80;
>      server_name b;
> }
>
> server {
>      listen 80;
>      server_name c;
> }
>
> Что касается использования собственно deferred, то я не уверен, что это
> хорошо.
>
>

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130



Подробная информация о списке рассылки nginx-ru