Nginx 清除缓存 第三方ngx_cache_purge模块

网友投稿 483 2022-11-02


Nginx 清除缓存 第三方ngx_cache_purge模块

Ngixn的缓存失效的时候都是通过proxy_cache_valid定义的多长时间失效,以及上游服务发来的响应一些头部,比如cache-control来定义缓存什么时候失效。这些失效都是和定时器一样基于时间段过期,能不能让缓存立刻失效呢?

ngx_cache_purge第三方模块可以立刻的使得某个资源缓存失效,这个模块是完全可以在生产环境下使用。

ngx_cache_purge模块

添加ngx_cache_purge模块

[root@~]# yum install git-1.8.3.1-21.el7_7.x86_64 -y[root@src]# git clone into 'ngx_cache_purge'...remote: Enumerating objects: 212, done.remote: Total 212 (delta 0), reused 0 (delta 0), pack-reused 212Receiving objects: 100% (212/212), 64.01 KiB | 42.00 KiB/s, done.Resolving deltas: 100% (116/116), done.[root@nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --add-module=../ngx_cache_purge[root@nginx-1.16.1]# make && make install[root@nginx-1.16.1]# make upgrade

配置nginx.conf

proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=nginx_cache:10m max_size=10G inactive=60m use_temp_path=off;#缓存存放的位置是 /data/nginx/cache,目录层级为两层,最多存放10G缓存#缓存key存放的内存空间是 nginx_cache ,单个缓存最大为 10m#自动移除60分钟内没有人访问的缓存#在将缓存放置到 proxy_cache_path 之前,不使用 use_temp_path

配置server

location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) { proxy_set_header Host $host; proxy_pass proxy_redirect $scheme://; add_header X-Cache $upstream_cache_status; proxy_cache nginx-cache;#对应前边的keys_zone=nginx_cache proxy_cache_valid 200 12h; proxy_cache_valid 301 302 1m; proxy_cache_key $host$uri$is_args$args; } location ~ /purge(/.*) { allow all;#指定可以清除缓存的ip,all允许所有ip清除 proxy_cache_purge nginx_cache $host$1$is_args$args;}

启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

purge命令清除静态缓存

   来清除静态资源缓存。

例如,在浏览器地址栏输入:http://mytest.com/purge/resources/app/css/product.css


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux dmesg命令帮你处理故障和收集系统信息的几种方法
下一篇:基于 SpringBoot 实现 MySQL 读写分离的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~