nginx + caching of static files

Tomasz Pajor nikon at puffy.pl
Wed Apr 8 15:50:06 MSD 2009


shinepf

ncache will only compile with versions up to 0.7.43.
with newer once there is a compile error because of the change in 
ngx_http_cache_s structure.

are You going to fix anytime soon?


--
Best Regards
Tomasz Pajor
> www.ncache.org <http://www.ncache.org>
>
> an nginx cache module 
>
> maybe this can help u .
>
> On Tue, Apr 7, 2009 at 5:03 PM, Payam Chychi <pchychi at gmail.com 
> <mailto:pchychi at gmail.com>> wrote:
>
>     2009/4/7 Igor Sysoev <is at rambler-co.ru <mailto:is at rambler-co.ru>>:
>     > On Tue, Apr 07, 2009 at 12:55:37AM -0700, Payam Chychi wrote:
>     >
>     >> On Mon, Apr 6, 2009 at 11:03 PM, Payam Chychi
>     <pchychi at gmail.com <mailto:pchychi at gmail.com>> wrote:
>     >> > thank you sir =) you are a king!
>     >> >
>     >> > -Payam
>     >> >
>     >> > 2009/4/6 Igor Sysoev <is at rambler-co.ru
>     <mailto:is at rambler-co.ru>>:
>     >> >> On Mon, Apr 06, 2009 at 10:46:24PM -0700, Payam Chychi wrote:
>     >> >>
>     >> >>> 2009/4/6 Igor Sysoev <is at rambler-co.ru
>     <mailto:is at rambler-co.ru>>:
>     >> >>> > On Mon, Apr 06, 2009 at 10:14:36PM -0700, Payam Chychi wrote:
>     >> >>> >
>     >> >>> >> Hi Guys,
>     >> >>> >>
>     >> >>> >> I was hoping someone could point out a document where it
>     can teach me
>     >> >>> >> how to setup nginx + caching. I know that traditionally
>     nginx did not
>     >> >>> >> have a native caching and it required you to run ncache
>     or cachemem in
>     >> >>> >> order to perform caching of static content... but does
>     nginx now allow
>     >> >>> >> basic static file caching without the use of any other
>     3rd app?
>     >> >>> >>
>     >> >>> >> Im trying to understand if nginx now has a native
>     caching which would
>     >> >>> >> allow caching of static content. I dont want to get
>     fancy in anyway, I
>     >> >>> >> simply want to allocate say 200mb of storage space to
>     allow caching of
>     >> >>> >> static content. the 200mb should be updated with the most
>     >> >>> >> active/recently seen file request.
>     >> >>> >>
>     >> >>> >> reason? im trying to allow nginx to serve the static
>     files from disk
>     >> >>> >> (if it has seen it previously) and not have to go back
>     to the origin
>     >> >>> >> server every single time.
>     >> >>> >
>     >> >>> > Get the lastest nginx (0.7.50) and use
>     >> >>> >
>     >> >>> >    proxy_cache_path  /path/to/cache  levels=1:2
>     >> >>> >                      keys_zone=one:10m
>     >> >>> >                      inactive=7d  max_size=200m;
>     >> >>> >
>     >> >>> >    proxy_temp_path   /path/to/temp;  # must be on the
>     same filesystem
>     >> >>> >                                      # as cache
>     >> >>> >
>     >> >>> >    server {
>     >> >>> >
>     >> >>> >        location / {
>     >> >>> >            proxy_pass              http://backend;
>     >> >>> >
>     >> >>> >            proxy_cache             one;
>     >> >>> >            proxy_cache_key         backend$request_uri;
>     >> >>> >            proxy_cache_valid       200  1h;
>     >> >>> >            proxy_cache_use_stale   error timeout
>     invalid_header;
>     >> >>> >        }
>     >> >>> >
>     >> >>> >
>     >> >>> >
>     >> >>> > --
>     >> >>> > Igor Sysoev
>     >> >>> > http://sysoev.ru/en/
>     >> >>> >
>     >> >>> >
>     >> >>>  proxy_cache_path  /path/to/cache  levels=1:2
>     >> >>>                      keys_zone=one:10m
>     >> >>>                      inactive=7d  max_size=200m;
>     >> >>>
>     >> >>>    proxy_temp_path   /path/to/temp;  # must be on the same
>     filesystem
>     >> >>>                                      # as cache
>     >> >>>
>     >> >>>    server {
>     >> >>>
>     >> >>>        location / {
>     >> >>>            proxy_pass              http://backend;
>     >> >>>
>     >> >>>            proxy_cache             one;
>     >> >>>            proxy_cache_key         backend$request_uri;
>     >> >>>            proxy_cache_valid       200  1h;
>     >> >>>            proxy_cache_use_stale   error timeout
>     invalid_header;
>     >> >>>        }
>     >> >>>
>     >> >>>
>     >> >>>
>     >> >>> few questions:
>     >> >>> 1- what does the keys_zone used for
>     >> >>> 2- what does the "200 1h" in proxy_cache_valid mean
>     >> >>> 3- how is the "proxy_cache_use_stale  error timeout
>     invalid_header" used?
>     >> >>
>     >> >> http://wiki.nginx.org/NginxHttpProxyModule#proxy_cache
>     >> >>
>     >> >>
>     >> >> --
>     >> >> Igor Sysoev
>     >> >> http://sysoev.ru/en/
>     >> >>
>     >> >>
>     >> >
>     >> >
>     >> >
>     >> > --
>     >> > Payam Tarverdyan Chychi
>     >> > Network Security Specialist / Network Engineer
>     >> >
>     >>
>     >>
>     >> Igor,
>     >>
>     >> using the caching info  ... i get a "redirect loop" when trying to
>     >> download  domain.com/images/spacer.gif
>     <http://domain.com/images/spacer.gif>  when the file does not exist
>     >> on the origin server ... ive also been able replicate this with
>     YSlow
>     >> for firefox
>     >>
>     >> When bypassing the proxy/cache and connecting directly to the
>     origin,
>     >> i get the proper 404 error
>     >> any ideas?
>     >
>     > Probably you have something like
>     >
>     >       error_page  404  /404.html;
>     >       proxy_intercept_errors  on;
>     >       recursive_error_pages   on;
>     >
>     > without
>     >
>     >       location = /404.html {
>     >
>     > so the /404.html is proxied to backend again.
>     >
>     > Also you may cache 404 errors too:
>     >
>     >       proxy_cache_valid    200 1h;
>     >       proxy_cache_valid    404 5m;
>     >
>     >
>     > --
>     > Igor Sysoev
>     > http://sysoev.ru/en/
>     >
>     >
>
>     Right on... that was the problem. fixed with adding exactly what you
>     said... im now also caching 404
>
>     thanks again
>     -payam
>
>






More information about the nginx mailing list