Кеширование FastCGI запросов

Igor Sysoev is at rambler-co.ru
Wed Oct 7 22:15:51 MSD 2009


On Wed, Oct 07, 2009 at 08:51:59PM +0400, Dmitry Koterov wrote:

> Я смог придумать только такое:
> 
> 
> location ~ ^(какие-урлы-кэшировать)$ {
>     set $test_cache_on "$cookie_debugMode$arg_nc$еще_что_должно_быть_пусто";
>     if ($test_cache_on = "") {
>         rewrite .* /php_cache last;
>     }
>     rewrite ^(.*)$ /index.php?$1 last;
> }
> 
> location /php_cache_rotate {
>     internal;
>     fastcgi_pass           127.0.0.1:9000;
>     fastcgi_param          SCRIPT_FILENAME $document_root/index.php;
>     include fastcgi_params;
>     fastcgi_cache your_zone;
>     fastcgi_cache_valid 60m;
>     fastcgi_cache_key "host=$host|uri=$request_uri|еще-от-чего-зависит-кэш";
> }
> 
> 
> Если есть более оптимальные варианты, буду рад услышать.

По-хорошему это надо бы делать как-то так:

fastcgi_no_cache   $cookie_debugMode;
fastcgi_no_cache   $arg_nc;
fastcgi_no_cache   $http_authorization;
fastcgi_no_cache   $http_pragma;

Возможно, завтра сделаю.

> 2009/10/6 1nsk.ru <alfa at 1nsk.ru>
> 
> > А как обернуть всё это дело в
> >
> > ?
> > if ($http_cookie !~ "user_id") {
> > #кэшируем только гостям
> > }
> >
> > А то в if нельзя fastcgi_store
> >
> > spall пишет:
> >
> >> Спасибо большое. В следущий раз буду внимательней читать доки.
> >>
> >> Posted at Nginx Forum:
> >> http://forum.nginx.org/read.php?21,11465,11472#msg-11472
> >>
> >>
> >>
> >>
> >>
> >
> >
> >

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list