proxy_cache ramdisk

Igor Sysoev igor at sysoev.ru
Mon Feb 1 20:06:11 MSK 2010


On Mon, Feb 01, 2010 at 10:50:37AM -0600, AMP Admin wrote:

> -----Original Message-----
> From: Igor Sysoev [mailto:igor at sysoev.ru] 
> Sent: Monday, February 01, 2010 10:38 AM
> To: nginx at nginx.org
> Subject: Re: proxy_cache ramdisk
> 
> On Sun, Jan 31, 2010 at 04:26:05PM -0600, AMP Admin wrote:
> 
> > I'm able to cache php pages with the following but I can't seem to cache
> > static images with proxy_cache.
> > 
> > 
> > This works:
> > 
> >         location ~ \.php$ {
> >
> >                         fastcgi_index index.php;
> >                         fastcgi_pass 127.0.0.1:9000;
> >                         fastcgi_cache cachephp;
> >                         fastcgi_cache_key 127.0.0.1:9000$request_uri;
> >                         fastcgi_cache_valid 200  1h;
> >                         include fastcgi_params;
> >                         fastcgi_intercept_errors On;
> >                         fastcgi_ignore_client_abort On;
> 
> "On" are invalid parameters.
> 
> >                         fastcgi_buffer_size 128k;
> >                         fastcgi_buffers 4 128k;
> >          }
> > 
> >  
> > 
> > This does not work:
> > 
> >         location ~* \.(jpg|jpeg|gif|css|png|js|ico|tif)$ {
> >                         access_log off;
> >                         expires 30d;
> >                         proxy_pass http://127.0.0.1;
> >                         proxy_cache_key $scheme$host$request_uri
> >                         proxy_cache cachestatic;
> >                         proxy_cache_valid 200  1h;
> >                         proxy_cache_valid 404  5m;
> 
> Why do you want to cache image from localhost ?
> You should handle them as static files.
> 
> >                         break;
> >         }
> 
> "break" is useless here. It's just waste of CPU cycles.
> 
> 
> --------
> 
> So I should just really just use cache like this:
>       location ~ \.php$ {
> 
>                          fastcgi_index index.php;
>                          fastcgi_pass 127.0.0.1:9000;
>                         fastcgi_cache cachephp;
>                          fastcgi_cache_key 127.0.0.1:9000$request_uri;
>                          fastcgi_cache_valid 200  1h;
>                          include fastcgi_params;
> 	}
> 
> And images like this:       
> 	location ~* \.(jpg|jpeg|gif|css|png|js|ico|tif)$ {
>                          access_log off;
>                          expires 30d;
> 	}
> 
> That would be best for performance?

Yes.

> Also, I noticed when I use the fastcgi_cache above that it caches logged in
> pages and users see the wrong user profile... should I change the
> fastcgi_cache_key to fix that?

Yes. Probably, you may add an user cookie.
Actually, you should mark logged pages as non-cachable, otherwise transient
proxy servers may cache them as well.


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



More information about the nginx mailing list