(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