运维

nginx缓存

2021-06-26  本文已影响0人  麟之趾a

缓存

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

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_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;
    }
}

自定义请求方法,以此方法请求,即可清空缓存

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

上一篇下一篇

猜你喜欢

热点阅读