Use nginx as proxy with cache for satic files

Marcus Clyne maccaday at
Sat Sep 5 01:45:26 MSD 2009


> But now the image requests don't go through the proxy anymore, 
> resulting in a 404 error. Is there any way to inherit the proxy 
> settings from the parent folder/a certain location?
> Of course I could just add the proxy settings to the "location 
> /images/" block, but the images folder is not the only one I want to 
> be cached, so there has to be an easier way to do this.
Settings in your / location will not be inherited by those in other 
locations.  The proxy_pass directive can only go in location or 
location-if (i.e. an if (...) {...} inside a location), and can't go at 
the server level, so you'd have to define the proxy_pass setting in each 
location it's used.
> In other words: I want all requests going through the proxy, but keep 
> a cache of ceartain folders on the nginx server. What is the best way 
> to do so?
Probably by putting common settings (which might just be proxy_pass;) in another file and including the file - 
then you'd only have to change the address / port once.

If you have multiple locations you want to cache, you could have three 

proxy.conf : (with just the proxy info)


proxy_cache.conf :  (with the proxy and the cache info)

include  proxy.conf;
proxy_cache  cache;
proxy_cache_valid  200 10m;

nginx.conf  :  (with the rest)

location / {
  include    proxy.conf;

location /images/ {
  include    proxy_cache.conf;

location /other-cache/ {
    include   proxy_cache.conf;

Hope that helps,


More information about the nginx mailing list