我正试图build立一个2条件的caching反向代理; 如果满足,则不应该从原始存储文件:
如下configuration,我得到了nginx不存储部分内容的请求。
但是,它仍然使用查询string存储请求。 我在这里错过了什么?
curl -r 1000-2000 http://edge.com/data/abcdef.dat [OK。 没有文件存储。]
wget http://edge.com/data/abcdef.dat?query=string [不行。 abcdef.dat保存在边上。]
位置/数据/ {
设置$ originuri / origin $ uri $ is_args $ args;
errorpage 404 = $ originuri;
}
位置/原点/ {
proxy_pass http://origin.com:1111;
proxy_store / mnt1 / edge / store;
proxy_temp_path / mnt1 / edge / tmp;
proxy_set_header If-Range $ http_if_range;
proxy_set_header范围$ http_range;
proxy_no_cache $ http_range $ http_if_range $ is_args;
}
如果我正在读你的configuration,当你将请求传递给代理的起源位置时,你正在构build一个不包含GET查询string的URIstring(即,你正在展开$args )。 如果这是发生了什么事情,这就可以解释为什么起始位置没有看到$is_args为真。
这是我的预感 – 我想看看请求日志,看看是否正确。