nginx缓存服务

缓存类型

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值表示缓存过期时间,当超过该时间时,无论缓存是否经常被访问,代理服务器都会向后端节点重新请求该数据,更新缓存

你可能感兴趣的:(nginx缓存服务)