文档章节

Apache服务器设置缓存过期时间

十月初五的月亮
 十月初五的月亮
发布于 2016/07/16 11:53
字数 1208
阅读 14
收藏 0

Apache模块 mod_expires
说明 允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容
状态 扩展(E)
模块名 expires_module
源文件 mod_expires.c
概述
这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期(expiration date)可以设置为相对于源文件的最后修改时刻或者客户端的访问时刻。
这些HTTP头向客户端表明了文档的有效性和持久性。如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取。接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新。
要修改Cache-Control头中max-age(参见RFC 2616 section 14.9)项之外的内容,你还可以使用Header指令。
Alternate(交替/轮流) Interval(间隔) Syntax(语法)
ExpiresDefault和ExpiresByType指令同样能够用易懂的语法格式进行定义:
ExpiresDefault " [plus] {}*"
ExpiresByType type/encoding " [plus] {}*"
其中是下列之一:
access
now (等价于'access')
modification
plus关键字是可选的。必须是整数[可以被atoi()接受的],是下列之一:
years
months
weeks
days
hours
minutes
seconds
例如,下列3个指令都表示文档默认的有效期是一个月:
ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
有效期可以通过增加""子句进一步调整:
ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"
注意,如果你使用基于最后修改日期的设置,"Expires:"头将不会被添加到那些并非来自于磁盘文件的内容。这是因为这些内容并不存在"最后修改时间"的属性。
ExpiresActive 指令
说明 启用或禁用产生"Expires:"和"Cache-Control:"头的功能
语法 ExpiresActive On|Off
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)

模块 mod_expires
这个指令对其作用范围内的文档启用或禁用产生Expires和Cache-Control头的功能。若设置为 Off 则不会为其作用范围内的任何文档生成Expires和Cache-Control头(除非被更低一层的规则改写,比如.htaccess文件)。若设置为 On 则会按照ExpiresByType和ExpiresDefault指令定义的标准为其作用范围内的文档生成Expires和Cache-Control头。
注意,这个指令并不保证Expires或Cache-Control头一定会产生。如果定义的标准不规范,将不会产生这两个头,其效果是好像从未设置过这个指令一样。
ExpiresByType 指令
说明 由MIME类型配置的Expires头的值
语法 ExpiresByType MIME-type seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)

模块 mod_expires
这个指令定义了为指定MIME类型的文档(如text/html)生成的Expires头的值和Cache-Control头的max-age指令。seconds参数设置了添加到基准时间以构造有效期限的秒数。Cache-Control: max-age的计算方法是从有效期减去当前请求时间并转化为秒数。
基准时刻可以是源文件的最后修改时刻或者客户端对源文件的访问时刻,至于使用那一个则由指定。"M"表示源文件的最后修改时刻,"A"表示客户端对源文件的访问时刻。需要注意的是和seconds之间没有空格。
这两种基准的差别是很微妙的。如果使用"M",所有当前缓存中的文档副本都将在同一时刻过期,这个可能对定期更新的URL(比如位于同一位置的每周通告)很有好处。如果使用"A",则每个客户端所得到的有效期是不一样的,这个可能对那些几乎不更新的图片文件很有好处,特别是对于一组都引用了相同图片的相关文档。
示例:
# 启用有效期控制
ExpiresActive On
# GIF有效期为1个月
ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800
注意,这个指令只有在"ExpiresActive On"的条件下才有效。它只对指定的MIME类型文档改写由ExpiresDefault指令设置的有效期。
你也可以使用前面讲述的alternate syntax指定有效期的计算方法。
ExpiresDefault 指令
说明 默认有效期的计算方法
语法 ExpiresDefault seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)
模块 mod_expires
该指令设置了其作用范围内的所有文档的默认有效期的计算方法,它可以被ExpiresByType指令基于MIME类型被改写。详情请参见ExpiresByType指令和那个alternate syntax的描述。

本文转载自:http://www.server110.com/apache/201310/2311.html

共有 人打赏支持
十月初五的月亮
粉丝 0
博文 71
码字总数 31441
作品 0
朝阳
负载均衡环境中和如何设置Expires和Etag

在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境...

晨曦之光
2012/03/09
570
0
面向站长和网站管理员的Web缓存加速指南

原文(英文)地址: http://www.mnot.net/cachedocs/ 版权声明:署名-非商业性使用-禁止演绎 2.0 这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应...

随影求是
2012/03/16
0
0
浏览器的缓存原理

如果每次打开页面都去从服务器加载,服务器压力有点大,同时响应时间也会影响用户体验,大部分的时候,web端的内容是不会改变的,这时候再从服务端拿数据,就有点太没必要了,所以就有了浏览...

stone_
2016/08/02
33
0
浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag

缓存对于web开发有重要作用,尤其是大负荷web系统开发中。 缓存分很多种:服务器缓存,第三方缓存,浏览器缓存等。其中浏览器缓存是代价最小的,因为浏览器缓存依赖的是客户 端,而几乎不耗费...

pczhangtl
2013/11/15
0
0
HTTP读书笔记(二)

第三章 HTTP结构 1.一个HTTP/1.1服务器特性要有:丰富的资源支持,虚拟主机,访问控制,日志记录,配置,监视和性能特性。 2.反向DNS对服务器端配置可以使得主机对客户端详细的访问控制和日志...

年少爱追梦
2016/02/23
33
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
48分钟前
0
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
3
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
2
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
3
0
中秋快乐!!!

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部