nginx缓存过期管理小结

标签: nginx 缓存 管理 | 发表时间:2013-03-25 22:05 | 作者:dingyujie
出处:http://blog.csdn.net

先看一个经典的配置,注意红色部分:

proxy_cache_path /cache levels=1:2 keys_zone=cache_pool:512minactive=1m max_size=10g;

location ~ .*\.(jpg|gif|png)$
{
    proxy_next_upstream   http_502 http_504 error timeout invalid_header;
    proxy_cache           cache_pool;
    proxy_cache_valid     200 304 2m;
    proxy_cache_key       $host$uri$is_args$args;
    proxy_set_header      Host $host;
    proxy_set_header      X-Forwarded-For  $remote_addr;
    proxy_pass            http://storage1;
    expires               10m;
}


我在Chinaunix论坛上看到有人问过,说这三个时间(上面红字显示的),到底是什么意思,他们有什么用处?先看官网的解释:

Cached data that are not accessed during the time specified by the inactive parameter get removed from the cache regardless of their freshness. By default, inactive is set to 10 minutes.
(被缓存的数据如果在inactive参数指定的时间内未被访问,就会被从缓存中移除,不论它是否是刚产生的。inactive的默认值是10分钟)

Sets caching time for different response codes. For example, the following directives
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404      1m;
set 10 minutes of caching for responses with codes 200 and 302, and 1 minute for responses with code 404.

expires: Controls whether the response should be marked with an expiry time, and if so, what time that is.
 
这里总结下:
        inactive的时间表示一个文件在指定时间内没有被访问过,就从存储系统中移除,不管你proxy_cache_valid里设置的时间是多少。而proxy_cache_valid在保证inactive时间内被访问过的前提下,最长的可用时间。proxy_cache_valid定义的其实是一个绝对过期时间(第一次缓存的时间+配置的缓存时间),到了这个点,对象就被认为是过期,然后去后端重取数据,尽管它被访问的很频繁(即所谓的inactive时间内)。expires呢,它不在这个过期控制体系内,它用在发给客户端的响应中,添加"Expires"头。关于expires指令的具体用法,可以参考官方wiki。

作者:dingyujie 发表于2013-3-25 22:05:09 原文链接
阅读:19 评论:0 查看评论

相关 [nginx 缓存 管理] 推荐:

nginx缓存过期管理小结

- - CSDN博客推荐文章
先看一个经典的配置,注意红色部分:. 我在Chinaunix论坛上看到有人问过,说这三个时间(上面红字显示的),到底是什么意思,他们有什么用处. (被缓存的数据如果在inactive参数指定的时间内未被访问,就会被从缓存中移除,不论它是否是刚产生的. inactive的默认值是10分钟).         inactive的时间表示一个文件在指定时间内没有被访问过,就从存储系统中移除,不管你proxy_cache_valid里设置的时间是多少.

Nginx content cache Nginx内容缓存

- - CSDN博客推荐文章
原文地址: http://nginx.com/resources/admin-guide/caching/. When caching is enabled NGINX saves responses in the cache on the disk and uses them to respond to clients without proxying the requests..

nginx缓存设置 [转]

- - 企业架构 - ITeye博客
转:http://linux008.blog.51cto.com/2837805/547236. 目的:缓存nginx服务器的静态文件. 如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新. 实现:nginx proxy_cache可以将用户的请缓存到本地一个目录,当下一个请求时可以直接调取缓存文件,就不用去后端服务器去取文件了.

Nginx之页面缓存

- - CSDN博客推荐文章
语法:proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];  . 默认值:None  . 使用字段:http  . 指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理url的哈希值作为关键字与文件名.

Nginx缓存解决方案:SRCache

- - 火丁笔记
前些天帮别人优化PHP程序,搞得灰头土脸,最后黔驴技穷开启了 FastCGI Cache,算是勉强应付过去了吧. 不过FastCGI Cache不支持分布式缓存,当服务器很多的时候,冗余的浪费将非常严重,此外还有数据一致性问题,所以它只是一个粗线条的解决方案. 对此类问题而言, SRCache是一个细粒度的解决方案.

使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制

- ndv - 博客园-EricZhang's Technology Blog
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统. 传统上,PHP中使用memcache的方法是使用php-memcache或php-memached扩展操作memcache,然而在Nginx上有构建更高效缓存机制的方法,本文将首先介绍这种机制,然后介绍具体的操作步骤方法,最后将对这种机制和传统的PHP操作memcache的性能进行一个benchmark.

App缓存管理

- - ITeye博客
无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户. Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一.

Jelastic 1.9支持FTP、NGINX缓存、Apache TomEE以及MariaDB 10

- - InfoQ cn
支持Java和PHP的PaaS云服务器托管平台 Jelastic发布了1.9版本,该版本将支持FTP/FTPS和 NGINX缓存. 最新版还支持 Apache TomEE(Apache Tomcat企业版)和 MariaDB 10,后者使得让开发者能够充分利用多源复制、动态列名以及 MariaDB Galera集群.

谈谈varnish,squid,apache,nginx缓存的对比

- - 行业应用 - ITeye博客
群里总是有人在问cache用什么,有varnish,squid,apache,nginx这几种,到底是我们用什么架构cache. varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成. 2、要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish.