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