ПРОЕКТЫ 


  АРХИВ 


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: accept_filter и backlog на непервом default-сервере



On Wed, Aug 27, 2008 at 03:17:10PM +0400, jackal wrote:

> Задача:
> Нужно чтобы один домен на одном айпи a.b.c.d обслуживался одной директивой 
> server, а все остальные домены (на всех айпи, в т.ч. a.b.c.d - другой 
> директивой server)
> 
> Сделано вот так:
> server {
>       listen a.b.c.d:80;
>       server_name domain.ru;
>       ...
> }
> server {
>       listen a.b.c.d:80 default accept_filter=httpready backlog=1024;
>       listen 80 default accept_filter=httpready backlog=1024;
>       ...
> }
> 
> Вопрос - почему не выставляется backlog для айпи a.b.c.d, и выставляется ли 
> accept_filter?
> 
> # sysctl kern.ipc.somaxconn
> kern.ipc.somaxconn: 4096
> 
> # netstat -Lan
> Current listen queue sizes (qlen/incqlen/maxqlen)
> Proto Listen         Local Address
> tcp4  0/0/4096       a.b.c.d.80
> tcp4  0/0/1024       *.80

Прилагаемый патч должен помочь.


-- 
Игорь Сысоев
http://sysoev.ru
Index: src/http/ngx_http.c
===================================================================
--- src/http/ngx_http.c (revision 1538)
+++ src/http/ngx_http.c (working copy)
@@ -1158,6 +1158,7 @@
 
                         in_addr[a].core_srv_conf = cscfp[s];
                         in_addr[a].default_server = 1;
+                        in_addr[a].listen_conf = &listen[l].conf;
                     }
 
                     goto found;


 




Copyright © Lexa Software, 1996-2009.