1 缓存文件放在哪儿?
# 指定缓存位置、缓存名称、内存中缓存内容元数据信息大小限制、缓存总大小限制。缓存位置是一个目录应该先创建好,nginx并不会帮我们创建这个缓存目录
proxy_cache_path /data/nginx/cache keys_zone=one:10m max_size=10g;
# 指定使用前面设置的缓存名称
proxy_cache one;
2. 如何指定哪些请求被缓存?
Nginx默认会缓存所有get和head方法的请求结果,缓存的key默认使用请求字符串
# 自定义key
proxy_cache_key “hosthosthostrequest_uri$cookie_user”;
# 指定请求至少被发送了多少次以上时才缓存,可以防止低频请求被缓存
proxy_cache_min_uses 5;
# 指定哪些方法的请求被缓存
proxy_cache_methods GET HEAD POST;
3. 缓存有效期
默认情况下,缓存的内容是长期存留的,除非缓存的总量超出限制。可以指定缓存的有效期
# 响应状态码为200 302时,10分钟有效
proxy_cache_valid 200 302 10m;
# 对应任何状态码,5分钟有效
proxy_cache_valid any 5m;
4. 如何指定哪些请求不被缓存?
# 如果任何一个参数值不为空或者不等0,nginx就不会查找缓存,直接进行代理转发。
proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;