accept_filter и backlog на непервом default-сервере
Igor Sysoev
is at rambler-co.ru
Wed Aug 27 17:26:43 MSD 2008
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
-------------- next part --------------
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;
More information about the nginx-ru
mailing list