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

简介: 反向代理的缓存清理一、proxy_cache配置(1)如何配置和安装,都在这里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Nginx/Nginx-Web/Nginx-8-proxy_cache.

反向代理的缓存清理

一、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       80;
        server_name  redis.tinywan.com;

        location / {
            proxy_cache cache_one;
            proxy_cache_valid 200 304 1h;
            proxy_cache_valid 404 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】第一次尝试,没有缓存

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

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

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

【3】查看缓存目录结构

【4】详细的缓存文件

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

二、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$1$is_args$args;  #清理缓存
                access_log  logs/cache.log cache; # 增加清理输出日志
        }

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

4、测试

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

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

 

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

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

三、参考文献

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


目录
相关文章
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
2123 2
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
1593 3
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
缓存 Python
在Python中,`functools`模块提供了一个非常有用的装饰器`lru_cache()`,它实现了最近最少使用(Least Recently Used, LRU)缓存策略。
在Python中,`functools`模块提供了一个非常有用的装饰器`lru_cache()`,它实现了最近最少使用(Least Recently Used, LRU)缓存策略。
378 10
|
缓存 应用服务中间件 nginx
[nginx]proxy_cache缓存系统
[nginx]proxy_cache缓存系统
643 4
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
1654 2
|
应用服务中间件 nginx C++
nginx的cgi模块
nginx的cgi模块
299 0
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
882 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
|
Ubuntu 前端开发 JavaScript
如何在 Ubuntu 14.04 上为 Nginx 添加 gzip 模块
如何在 Ubuntu 14.04 上为 Nginx 添加 gzip 模块
223 0
|
应用服务中间件 数据库 nginx
nginx 第三方模块 与变量
nginx 第三方模块 与变量