缓存类型
1、客户端缓存(浏览器缓存)
2、服务端缓存(redis等)
3、代理缓存(静态资源缓存)
缓存配置
upstream test1 {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
proxy_cache_path /soft/cache levels=1:2 keys_zone=test-cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
proxy_cache test-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args;
add_header Nginx-Cache "$upstream_cache_status";
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;#当后端节点出现错误,超时,http头部信息不正常,状态码为500、502、503、504时,负载均衡跳过该节点,将任务分发至其他节点
include /etc/nginx/conf.d/proxy;
}
}
配置详解
proxy_cache_path
/soft/cache#缓存存放路径
levels=1:2#目录级别为二级(常用)。三级目录写法为“levels=1:2:3”
keys_zone=test-cache:10m#开辟一个大小为10m的共享内存区,该内存区用于存储缓存键和元数据。1m可以存储8000个key(8000条缓存记录)
max_size=10g#最大使用10G的磁盘空间,当缓存达到这个上线,处理器便调用 cache manager 来移除最近最少被使用的文件,这样把缓存的空间降低至这个限制之下
inactive=60m#60分钟内,如果该缓存没被访问,该缓存记录将被移除
use_temp_path=off#不使用临时缓存
proxy_cache_valid 200 304 12h#状态码为200和304的内容缓存时间为12小时
proxy_cache_valid any 10m#所有缓存时间为10分钟
proxy_cache_key $host$uri$is_args$args#设置缓存的key值
add_header Nginx-Cache "$upstream_cache_status"#增加一个http头部信息,可以查看到是否命中缓存
注意:inactive与proxy_cache_valid区别
inactive值表示缓存活动时间,当超过该时间缓存没被访问,该缓存记录将被删除
proxy_cache_valid值表示缓存过期时间,当超过该时间时,无论缓存是否经常被访问,代理服务器都会向后端节点重新请求该数据,更新缓存