ПРОЕКТЫ 


  АРХИВ 


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: deferred и bind и много виртуальных хостов



Не совсем понял. У меня конфиг выглядит примерно так:
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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.