fastcgi cache based on header

Maxim Dounin mdounin at mdounin.ru
Wed Mar 24 13:22:28 MSK 2010


Hello!

On Tue, Mar 23, 2010 at 05:14:31PM +0100, Tomasz Pajor wrote:

> Hello,
> 
> Is there by any chance a way make something like this?
> 
> 
> location / {
>     try_files $uri $uri/ @fallback;
>     fastcgi_pass app;
>     fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
>     include base/fastcgi_params;
> 
>     if ($http_app_cache = "1") {
>     fastcgi_cache landingpage;
>     fastcgi_cache_key $http_host$request_uri;
>     fastcgi_cache_valid 200 2m;
>     fastcgi_cache_valid 404 1m;
>     fastcgi_cache_valid 500 1m;
>     fastcgi_cache_use_stale updating error timeout invalid_header http_500;
>     fastcgi_ignore_headers Expires Cache-Control;
>     }
> }

Something like this should work:

     location / {
         error_page 403 = @cache;

         if ($http_app_cache = "1") {
             return 403;
         }

         try_files $uri $uri/ @fallback;
         fastcgi_pass ...
         ...
     }

     location @cache {
         try_files $uri $uri/ @fallback;
         fastcgi_pass ...
         fastcgi_cache ...
         ...
     }

Maxim Dounin



More information about the nginx mailing list