Условное кешированеи memcached
Alex Ivanov
jungo495 at gmail.com
Thu Aug 27 15:01:25 MSD 2009
Добрый день
Cделал готовую схему для условного кеширования в memcached.
Все отлично работает но хотелось поправить ситуацию с ложным ключом, все
таки не красиво просто так обращатся туда за ложными данными.
Готовых решений не нашел. Все остальное в отрытом доступе не работоспособно
в моем случае.
set $backend 0;
# именно при таком локейшене обеспечивается точное кеширование всего что
есть
location ~ \/ {
default_type text/html;
gzip_types application/octet-stream;
index default.php index.php index.html index.htm;
if ($http_cookie !~ "th_auth" ) {
set $backend 1;
}
if ($request_method != GET) {
set $backend 0;
}
if ($backend = 1) {
add_header Content-Type "text/html; charset=utf-8";
set $memcached_key "$request_uri";
memcached_pass 127.0.0.1:11211;
error_page 404 405 502 504 = @fallback;
break;
}
# ситуация такая что когда cookie есть он отрабатывает ее и не знает куда
направить запрос - а надо на фоллбэк локейшн его направить, и с пост будет
тоже самое происходить
# для решения вводим ложный ключ и далее переход на фолбек тем у кого есть
кука либо по еррору
set $memcached_key "123";
memcached_pass 127.0.0.1:11211;
error_page 404 405 502 504 = @fallback;
break;
}
location @fallback {
fastcgi_pass unix:/tmp/php-fpm.socket;
...
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.socket;
...
}
Спасибо за помощь.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090827/26c8e992/attachment.html>
More information about the nginx-ru
mailing list