proxy with caching functionality
Evan Miller
emmiller+gmane at gmail.com
Thu May 10 20:55:49 MSD 2007
Martin Minka <martin.minka at ...> writes:
>
>
> I have question
> about caching functionality in nginx.
>
>
>
> The purpose is to
> use nginx on local server to speed up responses from <remote
> server>.
> 1. Will the
> following configuation cache static content from <remote server> for 5d
> ?
> 2. Where will the
> cached content be stored ? Directory ../nginx/proxy_temp is always
> empty.
>
"expires" just refers to how long items will remain in the browser cache.
Nginx cannot act as a caching proxy. There are a couple of ways to emulate
caching behavior if you control the remote server. One is to have the remote
server stuff its results in Memcached. See
http://wiki.codemongers.com/NginxMemcachedModule. Another solution is for the
remote server, upon receiving a request from Nginx, to send a PUT request to
Nginx where Nginx will find the file in the future, then reply to the initial
request with X-Accel-Redirect to the newly PUTted file. I do this for some image
files I want to dynamically resize and cache. My nginx.conf looks like:
location /images {
include conf/fastcgi_params;
if (!-f $request_filename) {
fastcgi_pass backend;
}
dav_methods put;
create_full_put_path on;
limit_except GET {
allow 192.168.0.0/16;
allow 127.0.0.1/32;
deny all;
}
expires max;
}
The advantages over the Memcache method is that MIME types will work out of the
box, the disk cache doesn't expire, and it's often faster.
Hope this helps.
Evan
>
>
> location ~*
>
^.+.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|css|doc|xls|exe|
pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|xml)$
> {
> include
> conf/mime.types;
>
> proxy_pass http://<remote
> server>;
>
> proxy_redirect
> off;
>
> access_log
> logs/access.static.log;
> expires
> 5d;
> }
>
>
>
> Martin
> Minka
>
>
>
More information about the nginx
mailing list