Fastcgi cache

Jim Ohlstein jim.ohlstein at gmail.com
Wed May 13 19:42:25 MSD 2009



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.

Jim





More information about the nginx mailing list