龙空技术网

Nginx缓存

爱学习的小菜鸟 129

前言:

此时大家对“nginx缓存配置详解”大体比较注意,小伙伴们都想要了解一些“nginx缓存配置详解”的相关资讯。那么小编也在网上收集了一些对于“nginx缓存配置详解””的相关内容,希望看官们能喜欢,你们快快来学习一下吧!

Nginx缓存

一般情况下系统用到的缓存有三种

服务端缓存:缓存存在后端服务器,如redis代理缓存:缓存存储在代理服务器或中间件,内容从后端服务器获取,保存在本地客户端缓存:缓存在浏览器

Nginx使用的缓存属于代理缓存

Nginx通过proxy_cache来实现缓存。Buffer(缓冲)主要用于传输效率不同步或者优先级不相同的设备之间传输数据,通过对一方数据进行临时存放,在统一发送的方式传递给另一方,以降低进程间的等待时间;Cache(缓存)主要用于将硬盘上已有的数据在内存中建立缓存数据,提高数据的访问效率。

而proxy_cache只有在Proxy Buffer机制开启的情况下Proxy Cache的配置才会发挥作用

相关配置

proxyzone:zone | off 默认是off,即关闭proxycache功能,zone为用于存放缓存的内存区域名称proxycachepath: path [levels=levels] keyszone-name:size [inactive=time] [maxsize=size]path设置缓存数据存放的路径levels设置目录层级,如levels=1:2,表示有两个子目录keyszone 设置内存zone的名称和大小,如keyszone=my:10minactive设置缓存多长时间失效,当磁盘上的缓存数据在该时间段内没有被访问过,就会失效,数据将被删除,默认10smax_size 设置硬盘中最多缓存多少数据,数据超出,则删除最少访问的数据

示例

http {    proxy_cache_path    /var/www/cache #缓存地址                        levels=1:2 #目录分级                        keys_zone=test_cache:10m #开启的keys空间名字:空间大小(1m可以存放8000个key)                        max_size=10g #目录最大大小(超过时,不常用的将被删除)                        inactive=60m #60分钟内没有被访问的缓存将清理                        use_temp_path=off; #是否开启存放临时文件目录,关闭默认存储在缓存地址    server {            # 使用缓存        location / {            proxy_cache test_cache;    #开启缓存对应的名称,在keys_zone命名好            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";        }        #不使用缓存        if ($request_uri ~ ^/(login|register) ) {    #当请求地址有login或register时            set $nocache = 1;    #设置一个自定义变量为true            }            location / {            proxy_no_cache $nocache $arg_nocache $arg_comment;            proxy_no_cache $http_pragma $http_authoriztion;            }    }}

标签: #nginx缓存配置详解