携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情
每日英语:
As long as you can still grab a breath,you fight.
翻译:只要你一息尚存,就不能退缩。 -《荒野猎人》
1.Nginx代理缓存热点数据应用
1)开启代理缓存
修改nginx.conf,添加如下配置:
proxy_cache_path /usr/local/openresty/nginx/cache levels=1:2 keys_zone=proxy_cache:10m max_size=1g inactive=60m use_temp_path=off;
修改nginx.conf,添加如下配置:
#门户发布
server {
listen 80;
server_name www.xzshop.com;
#推广产品查询
location /sku/aditems/type {
#先找Nginx缓存
rewrite_by_lua_file /usr/local/openresty/nginx/lua/aditemsskus.lua;
#启用缓存openresty_cache
proxy_cache proxy_cache;
#针对指定请求缓存
#proxy_cache_methods GET;
#设置指定请求会缓存
proxy_cache_valid 200 304 60s;
#最少请求1次才会缓存
proxy_cache_min_uses 1;
#如果并发请求,只有第1个请求会去服务器获取数据
#proxy_cache_lock on;
#唯一的key
proxy_cache_key $host$uri$is_args$args;
#自己的真实服务器,动态代理
proxy_pass http://192.168.2.129:8081;
}
#其他所有请求
location / {
root /usr/local/gupao/web/static/frant;
}
}
重启nginx或者重新加载配置文件nginx -s reload,再次测试,可以发现下面个规律:
1:先查找Redis缓存
2:Redis缓存没数据,直接找Nginx缓存
3:Nginx缓存没数据,则找真实服务器
我们还可以发现cache目录下多了目录和一个文件,这就是Nginx缓存。
2.Cache_Purge代理缓存清理
很多时候我们如果不想等待缓存的过期,想要主动清除缓存,可以采用第三方的缓存清除模块清除缓存 nginx_ngx_cache_purge。安装nginx的时候,需要添加purge模块,purge模块我们已经下载了,在/usr/local/xiaozhong目录下,添加该模块--add-module=/usr/local/xiaozhong/ngx_cache_purge-2.3/,这一个步骤我们在安装OpenRestry的时候已经实现了。
安装好了后,我们配置一个清理缓存的地址:192.xx.xx.xx/purge/sku/a…
#清理缓存
location ~ /purge(/.*) {
#清理缓存
proxy_cache_purge proxy_cache $host$1$is_args$args;
}
此时访问www.xzshop.com/purge/sku/a…,表示清除缓存。 成功的标识有一个Successful purge。
总结:本篇主要介绍了一下Nginx代理缓存热点数据如何应用,以及Cache_Purge工具如何清理代理缓存。