Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

时间:2022-06-12 20:08:01

反向代理的缓存清理

一、proxy_cache配置

(1)如何配置和安装,都在这里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Nginx/Nginx-Web/Nginx-8-proxy_cache.md

(2)被代理域名:http://www.amailive.com/

(3)测试域名:amailive.tinywan.com

(4)Server主机配置

    server {
listen ;
server_name redis.tinywan.com; location / {
proxy_cache cache_one;
proxy_cache_valid 1h;
proxy_cache_valid 1m;
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Nginx-Cache "$upstream_cache_status";
proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
proxy_pass http://www.redis.net.cn/;
expires 1d;
} }

(5)重启服务器,测试配置是否成功

【1】第一次尝试,没有缓存

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

♣ proxy_cache模块的工作原理如图所示

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【2】第二次再次访问,可以看出已经是命中缓存了

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

proxy_cache模块的工作原理如图所示
Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【3】查看缓存目录结构

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【4】详细的缓存文件

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【5】所有的静态文件都被缓存

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

二、ngx_cache_purge配置

1、模块下载地址 :https://github.com/FRiCKLE/ngx_cache_purge
2、编译安装。在我另外一篇博客:http://www.cnblogs.com/tinywan/p/7860774.html

注:这个模块不可以动态编译,我第一次动态编译后,结果没有编译进去,没有.so文件生成

3、配置文件

        location ~ /purge(/.*) {
allow all; #127.0.0.1; 只允许本机访问
deny all; #禁止其他所有ip
proxy_cache_purge cache_one $host$$is_args$args; #清理缓存
access_log logs/cache.log cache; # 增加清理输出日志
}

注:Cache_proxy Purge,这个url中,必须以波浪号开头,不要加"^"

4、测试

【1】查看一个缓存文件路径,这个路径就是缓存文件的真实路径了

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【2】清理缓存,在浏览器地址栏输入:http://amailive.tinywan.com/purge/lib/swiper/3.0.6/js/maps/swiper.jquery.min.js.map

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【3】再次查看该缓存文件,可以看出已经被清理掉,不存在了

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

【4】再次访问原来的url,缓存就会失效了。

Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

三、参考文献

1、nginx系列(二十)nginx的缓存清理模块ngx_cache_purge

2、linux + nginx + ngx_cache_purge 缓存清理

3、动态PHP电商网站伪静态的 Nginx反向代理Cache缓存终极设置