Use nginx as proxy with cache for satic files
Marcus Clyne
maccaday at gmail.com
Sat Sep 5 01:45:26 MSD 2009
Hi,
>
> 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.
http://wiki.nginx.org/NginxHttpProxyModule#proxy_pass
> 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
http://backend.server.org;) 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
files:
proxy.conf : (with just the proxy info)
proxy_pass http://backend.server.org;
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,
Marcus.
More information about the nginx
mailing list