Fastcgi cache

Igor Sysoev is at rambler-co.ru
Wed May 13 19:52:49 MSD 2009


On Wed, May 13, 2009 at 11:42:25AM -0400, Jim Ohlstein wrote:

> 
> 
> Igor Sysoev wrote:
> >On Wed, May 13, 2009 at 10:59:13AM -0400, Jim Ohlstein wrote:
> >
> >  
> >>Igor Sysoev Wrote:
> >>-------------------------------------------------------
> >>    
> >>>On Wed, May 13, 2009 at 12:06:33AM -0400, Jim
> >>>Ohlstein wrote:
> >>>
> >>>      
> >>>>Igor Sysoev Wrote:
> >>>>
> >>>>        
> >>>--------------------------------------------------
> >>>-----
> >>>      
> >>>>>On Sat, May 09, 2009 at 03:02:53PM -0400, Jim
> >>>>>Ohlstein wrote:
> >>>>>
> >>>>>          
> >>>>>>Is there any way to set the it just to
> >>>>>>            
> >>>cache
> >>>      
> >>>>>image and other media files, but not
> >>>>>          
> >>>text/html? I
> >>>      
> >>>>>only see based on response in the Russian
> >>>>>          
> >>>docs
> >>>      
> >>>>>(best as I can understand). Is that something
> >>>>>          
> >>>that
> >>>      
> >>>>>can be added or is planned?
> >>>>>
> >>>>>No, currently nginx can not cache using
> >>>>>content-type, but it can be easy
> >>>>>added. Also you may use location to separate
> >>>>>responses.
> >>>>>
> >>>>>          
> >>>>Can you give a sample configuration of how that
> >>>>        
> >>>would work.
> >>>      
> >>>>I have tried putting location blocks in and out
> >>>>        
> >>>of the main fastcgi_pass block without any
> >>>success.
> >>>
> >>>location ~ \.php$ {
> >>>     fastcgi_pass  ...
> >>>}
> >>>
> >>>location ~ \.(jpg|gif|png)$ {
> >>>     fastcgi_pass  ...
> >>>     fastcgi_cache ...
> >>>}
> >>>
> >>>
> >>>      
> >>That's what I tried first: It's a Perl script and I am using fcgiwrap.
> >>
> >>location ~ myscript {
> >>fastcgi_pass unix:/tmp/cgi.sock;
> >>include /usr/local/nginx/conf/fastcgi_params;
> >>fastcgi_buffers 64 8k;
> >>}
> >>
> >>location ~ \.(jpg|gif|png)$ {
> >>fastcgi_pass unix:/tmp/cgi.sock;
> >>fastcgi_cache one;
> >>fastcgi_cache_key unix:/tmp/cgi.sock.1$request_uri;
> >>fastcgi_cache_valid 200 302 5m;
> >>fastcgi_cache_valid 301 1d;
> >>fastcgi_cache_valid any 5m;
> >>include /usr/local/nginx/conf/fastcgi_params;
> >>fastcgi_buffers 64 8k;
> >>}
> >>
> >>The only thing that winds up in the cache is when there is a 403.
> >>    
> >
> >Probably you need to add
> >
> >  fastcgi_ignore_headers  Cache-Control  Expires;
> >
> >
> >  
> That didn't change anything.
> 
> If I configure with:
> 
> location ~ myscript {
> fastcgi_pass unix:/tmp/cgi.sock;
> fastcgi_cache one;
> fastcgi_cache_key unix:/tmp/cgi.sock.1$request_uri;
> fastcgi_cache_valid 200 302 5m;
> fastcgi_cache_valid 301 1d;
> fastcgi_cache_valid any 5m;
> include /usr/local/nginx/conf/fastcgi_params;
> fastcgi_buffers 64 4k;
> }
> 
> then files wind up in the cache. So I know the cache is configured and 
> working.

Then change the locations order:

  location ~ \.(jpg|gif|png)$ {
  }

  location ~ myscript {
  }

It seems that your images have "myscript" string.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list