nginx的proxy_store可以将后端服务器的文件暂存在本地. 基于此,可以实现nginx的缓存后端服务器文件,加快访问速度。 比如:
upstream http_tornado {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
}
server {
# 省略其他配置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {
root /opt/data/product/blog/cache;
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path /opt/data/product/blog/cache;
if ( !-e $request_filename) {
proxy_pass http://http_tornado;
}
}
}
此配置中,针对html等静态文件,判断本地是否已经缓存。如果已经缓存,从本地获取。否则转发给后端服务器。
需要注意的是:由于proxystore没有过期机制,因此如果后端文件有更新。需要采用其他方式删除proxystore的缓存文件,以便proxy_store刷新文件。