Welcome! Log In Create A New Profile

Advanced

(no subject)

Maxim Dounin
April 13, 2010 07:32PM
Hello!

On Tue, Apr 13, 2010 at 07:17:50AM -0400, john2do wrote:

> День добрый!
>
> Всплыл тут пренеприятнейший момент, а именно:
> имеем index.html вида
>
> <!--# include virtual="/cache/ssss?docid=12345" -->
>
> <!--# include virtual="/cache/ssss?docid=8888" -->
>
> <!--# include virtual="/cache/ssss?docid=9999" -->
>
> имеем конфиг вида:
> location / {
> ssi on;
> root /home/www;
> index index.html;
> }
> location /cache {
> default_type text/html;
> set $memcached_key "gen|$arg_docid";
> memcached_pass 127.0.0.1:11211;
> }
>
> приэтом, если запрашивать /cache/ssss?docid=....(тут то что нужно) отдается именно контент который нужен.
> при обработке же ssi странички, отдается(запрашивается в мемкэше) исключительно gen|12345 (лог мемкэша это подтверждает).
> я правильно понимаю что переменная $memcached_key не переопределяется?

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

> это баг-фича? или мои кривые руки?

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

> Как быть что бы заработало?

Либо использовать для передачи ключа что-нибудь некеширующееся,
например uri:

<!--#include virtual="/cache/12345" -->
<!--#include virtual="/cache/8888" -->

location ~ ^/cache/([0-9]+)$ {
set $memcached_key "gen|$1";
memcached_pass ...;
}

Либо накатить какой-то такой патч:

--- 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[i].name.data, "arg_", 4) == 0) {
v[i].get_handler = ngx_http_variable_argument;
v[i].data = (uintptr_t) &v[i].name;
+ v[i].flags = NGX_HTTP_VAR_NOCACHEABLE;

continue;
}


Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

(no subject)

Maxim Dounin April 13, 2010 07:32PM

Re: (no subject)

john2do April 15, 2010 01:32AM

Re: (no subject)

Maxim Dounin April 15, 2010 07:44AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 258
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready