NGINX----模块----缓存

2020-05-21  本文已影响0人  JuMinggniMuJ

如果有人问你怎么优化网站,那么你一定要告诉他使用缓存,nginx有着简单方便的缓存机制。

存放放在哪?

nginx不会自动为我们创建缓存目录,我们需要手动创建缓存目录。我们可以把缓存路径指向任何我们习惯使用的位置,我们只需要在http中设置:

  proxy_cache_path cache_path  keys_zone=cache_name:file_size  max_size=size_num inactive=destory_time levels=1:n;
        cache_path         #缓存的路径
        cache_name         #缓存的名称
        file_size          #内存中缓存内容元数据信息大小限制
        size_num           #缓存总大小限制
        destory_time       #在指定时间内没人访问则被删除
        1:n                #设置缓存文件目录层次;levels=1:n 表示n级目录

什么时候缓存?

Nginx默认会缓存所有get和head方法的请求结果,缓存的key默认使用请求字符串,使用缓存的时候我们只需要指定缓存场景:

      proxy_cache    cache_name|off
            #cache_name      proxy_cache_path中设置的keys_zone
            #off            关闭缓存
            #proxy_cache    可以放在server或者location下
     proxy_cache_methods   METHOD
           #指定哪些方法的请求被缓存
     proxy_cache_min_uses  n
           #指定请求至少被发送了多少次以上时才缓存,可以防止低频请求被缓存#

缓存多久?

我们已经设置好了缓存路径,也知道了在哪里怎么触发缓存,对于不同的文件,往往有着不同的缓存需求,我们只需要设置:

proxy_cache_valid  status_code   time 
    #200 302 10m;        200和302的响应状态码缓存时间为10分钟
    #any 5m;            对应任何状态码,5分钟有效

缓存特例?

有的时候有一些文件我们不想缓存,这个时候我们只需要设置:

proxy_cache_bypass url_path
        #url_path      这时url_path网址访问的文件就不会缓存了
上一篇下一篇

猜你喜欢

热点阅读