Re: Условное кешированеи memcached

Борис Долгов boris at dolgov.name
Thu Aug 27 15:23:42 MSD 2009


А чем не понравилось штатное кеширование?

27 августа 2009 г. 15:01 пользователь Alex Ivanov (jungo495 at gmail.com) написал:
> Добрый день
> 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;
> ...
> }
> Спасибо за помощь.
>
>



-- 
С уважением, Борис Долгов.
icq 77556665
e-mail boris at dolgov.name


More information about the nginx-ru mailing list