fastcgi_cache работает как то странно

Igor Sysoev is at rambler-co.ru
Tue Apr 7 22:23:33 MSD 2009


On Tue, Apr 07, 2009 at 07:47:00PM +0300, maxhl at hitline.net.ua wrote:

> # egrep 'listen|server_name' nginx.conf
>     server_names_hash_max_size 16384;
>     server_names_hash_bucket_size 128;
> #    server_names_hash_max_size 32768;
> #    server_names_hash_bucket_size 256;
> Наверно под FreeBSD egrep не работает правильно.

egrep на FreeBSD работает нормально, я его именно там и запускал.

> В конфигах вирт хостов эти записи не встречаются ... 
> 
> # less default |grep listen
>         listen 84.19.190.165:80 default rcvbuf=8k sndbuf=16k;
>         listen 192.168.0.1:80;
>         listen 84.19.190.165:81;
>         listen 84.19.190.165:82;
> #       listen 84.19.190.165:23;
> 
> # less content |grep listen
>             listen 84.19.190.165:80;
>             listen 192.168.0.1:80;
>             listen 84.19.190.165:81;
>             listen 84.19.190.165:82;
> В каждом вирт хосте такая же запись listen как в content. Всего вирт хостов
> на тестовой системе 25 ...
> 
> server_name test1.com *.test1.com test2.com *.test2.com и так далее всего
> около 15 тысяч имен test1-test15000 ... (по вирт хостам они распределены не
> равномерно на одном из хостов 14тыс на других остальные).

Ничего не понимаю. Можно сделать тестовый вариант nginx.conf вида:

http {

    server {
        listen 84.19.190.165:80;
        server_name  ...;
        return  401;
    }

    server {
        listen 84.19.190.165:80;
        server_name  test1.com *.test1.com;
        return  402;
    }

    server {
        listen 84.19.190.165:80;
        server_name  test10.com *.test10.com;
        return  405;
    }

    ...

}

?

> -----Original Message-----
> From: owner-nginx-ru at sysoev.ru [mailto:owner-nginx-ru at sysoev.ru] On Behalf
> Of Igor Sysoev
> Sent: Tuesday, April 07, 2009 6:22 PM
> To: nginx-ru at sysoev.ru
> Subject: Re: fastcgi_cache работает как то странно
> 
> On Tue, Apr 07, 2009 at 03:45:53PM +0300, maxhl at hitline.net.ua wrote:
> 
> > В 38 все работает а в 39 уже нет ...  
> 
> В 39 тоже было незначнительное изменение, связанное с именами серверов, но у
> меня в тестах работает правильно. Мне нужен список всех listen и
> server_name:
> 
> egrep 'listen|server_name' nginx.conf
> 
> Лучше в личную почту.
> 
> > -----Original Message-----
> > From: owner-nginx-ru at sysoev.ru [mailto:owner-nginx-ru at sysoev.ru] On 
> > Behalf Of Igor Sysoev
> > Sent: Tuesday, April 07, 2009 8:19 AM
> > To: nginx-ru at sysoev.ru
> > Subject: Re: fastcgi_cache работает как то странно
> > 
> > On Mon, Apr 06, 2009 at 11:20:18PM +0300, maxhl at hitline.net.ua wrote:
> > 
> > > Пробовал новые версии  46 47 и 50 при этом ничего не меняя в конфиге.
> > > Проблема та же. Если есть какой то вирт хост с "default" и нижн его 
> > > есть вирт хост пробрасываемый на апач то запрос просто неприходит на 
> > > нижний вирт хост вне зависимости от домена.
> > > У меня еще стоит сомаписный патч:
> > > 
> > > diff -urN nginx-hash/src/http/modules/ngx_http_referer_module.c
> > > nginx/src/http/modules/ngx_http_referer_module.c
> > > --- nginx/src/http/modules/ngx_http_referer_module.c    2007-12-28
> > > 15:15:11.000000000 +0200
> > > +++ nginx/src/http/modules/ngx_http_referer_module.c    2008-06-15
> > > 11:24:38.000000000 +0300
> > > @@ -268,8 +268,8 @@
> > >      }
> > > 
> > >      hash.key = ngx_hash_key_lc;
> > > -    hash.max_size = 2048; /* TODO: referer_hash_max_size; */
> > > -    hash.bucket_size = 64; /* TODO: referer_hash_bucket_size; */
> > > +    hash.max_size = 16384; /* TODO: referer_hash_max_size; */
> > > +    hash.bucket_size = 128; /* TODO: referer_hash_bucket_size; */
> > >      hash.name = "referers_hash";
> > >      hash.pool = cf->pool;
> > > 
> > > Но в версии 32 все замечательно работает. Мне кажется что предел 
> > > памяти под hash.max_size задан где то еще при работе с данной 
> > > структутой, и при значительном колличестве елементов просто выше 
> > > предела элементы не обрабатываются ...
> > 
> > Нет, это влиять не должно. С обработкой имён серверов связаны два 
> > изменения в 0.7.35 и 0.7.36. Можно попробовать эти версии, чтобы 
> > узнать, когда поломалось.
> > 
> > 
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> 
> --
> Игорь Сысоев
> http://sysoev.ru

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list