(no subject)

john2do nginx-forum на nginx.us
Чт Апр 15 09:32:38 MSD 2010


Maxim Dounin Wrote:
-------------------------------------------------------
> Переменные $arg_* кешируются,
> а подзапросы имеют общее 
> пространство переменных с
> основным запросом (и между
> собой).  В 
> результате кто первый
> встал - от того и
> закешировалось...

> Это багофича.

> Либо использовать для
> передачи ключа что-нибудь
> некеширующееся, 
> например uri:
> 
>     <!--#include virtual="/cache/12345" -->
>     <!--#include virtual="/cache/8888" -->
> 
>     location ~ ^/cache/([0-9]+)$ {
>         set $memcached_key "gen|$1";
>         memcached_pass ...;
>     }

т.е. переписывать двигло, что бы было нечто вроде /cache//document.php?section=123&docid=9999
дабы если не обнаружилось в кэше, то бэк смог понять что от него требуется, ответить и положить то что нужно в кэш на потом.

> 
> Либо накатить какой-то
> такой патч:
> 
> --- a/src/http/ngx_http_variables.c
> +++ b/src/http/ngx_http_variables.c
> @@ -1937,6 +1937,7 @@
> ngx_http_variables_init_vars(ngx_conf_t
>          if (ngx_strncmp(v.name.data, "arg_", 4)
> == 0) {
>              v.get_handler =
> ngx_http_variable_argument;
>              v.data = (uintptr_t) &v.name;
> +            v.flags = NGX_HTTP_VAR_NOCACHEABLE;
> 
>              continue;
>          }

этот патчик отрубит наглухо кэширование аргументов и полагаю при 1k/sec запросов (с аргументами) производительность может прилично подсесть? какие последствия на производительность данный патчик окажет? ориентировочные?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,74716,75166#msg-75166




Подробная информация о списке рассылки nginx-ru