nginx缓存

作者: 麟之趾a | 来源:发表于2021-06-26 23:10 被阅读0次

    缓存

    what

    缓存是对热点数据进行的。是把数据从低端的硬盘存储,放到高端的内存存储。但有一个前提,就是数据必须有时空性。时间,及客户端第一次访问,和以后几次访问都访问相同的数据。空间性,及访问的这次数据,以后的几次可以访问其周边数据。及100%的数据,有20%是经常被访问的。20%及为热点数据

    why

    缓存相当于中间层,是为了衔接,cpu和硬盘速度不匹配。而加入的,为了提升响应客户端的速度

    where

    如页面缓存(page cache),nginx所做的。缓存css,js,jpg,png...图片的

    who

    如高并发场景,缓存数据,做用户登录的session

    how

    page cache: nginx varish spuid CDN
    data cache: redis memcache

    • 缓存内容如何定义
    • 缓存内容的过期时间
    • 在http请求中,哪些方法可以被缓存
    • 缓存放在哪(内存)
    • 根据什么方法,来查找缓存(hash算法)

    nginx缓存

    定义缓存

    nginx官网链接

    Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [min_free=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
    Default:    —
    Context:    http
    
    path: 缓存路径,nginx缓存的key是放在内存中,具体文件放在磁盘中。此路径需要创建
    levels: 缓存的级别  
    例:1:2:1  为三级路由, 1为hash算法的第一个匹配uri的从右往左的第一个字母
    2: 为hash算法匹配uri的从右往走的第二,三个字母
    1: 为hash算法匹配uri名字的从右往左的第四字母
    注意: uri全为16进制重新转义,为hash算法匹配
    keys_zone 为nginx key值的内容建立内存空间,后面指定用多少。后面proxy_cache调用
    这个名字 
    

    使用缓存

    官网链接

    Syntax: proxy_cache zone | off;
    Default:    
    proxy_cache off;
    Context:    http, server, location
    
    指定缓存的名字,名字为上面proxy_path定义的keys_zone的名字
    

    缓存的额外配置

    • proxy_cache_key 使用请求过来的什么当索引
    • proxy_cache_methon 那种http方法被缓存
    • proxy_cache_vaild 哪种状态码被缓存,及缓存多长时间
    • proxy_cache_use_stable 如果代理后端服务不可用,缓存将采取什么样的策略。是继续返回缓存数据,还是返回错误

    proxy_cache_purge

    Syntax: proxy_cache_purge string ...;
    Default:    —
    Context:    http, server, location
    This directive appeared in version 1.5.7.
    
    清理nginx缓存
    

    example

    proxy_cache_path /data/nginx/cache keys_zone=cache_zone:10m;
    
    map $request_method $purge_method {
        PURGE   1;
        default 0;
    }
    
    server {
        ...
        location / {
            proxy_pass http://backend;
            proxy_cache cache_zone;
            proxy_cache_key $uri;
            proxy_cache_purge $purge_method;
        }
    }
    
    自定义请求方法,以此方法请求,即可清空缓存
    

    做为运维工程师,应该清楚,每次版本更新。有哪些缓存需被清楚,替换。清楚替换内容找研发要

    相关文章

      网友评论

        本文标题:nginx缓存

        本文链接:https://www.haomeiwen.com/subject/vqktultx.html