文档章节

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

十月初五的月亮
 十月初五的月亮
发布于 2016/07/16 11:53
字数 1208
阅读 11
收藏 0
点赞 0
评论 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读书笔记(二)

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

年少爱追梦
2016/02/23
33
0
浏览器与服务端协商缓存

协商过程 协商的过程很容易理解,首先,当浏览器向Web服务器请求一些内容时,Web服务器需要告诉浏览器哪些内容可以被缓存,一旦浏览器知道某个内容可以缓存后,下次当浏览器需要请求这个内容...

go4it
2016/12/07
3
0
浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag

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

pczhangtl
2013/11/15
0
0
优化建议解决方案:未设置max-age或expires

网页的缓存是由 HTTP 消息头中的 “Cache-control” 来控制的,常见的取值有 private、no-cache、max-age、must-revalidate 等,默认为private。其作用根据不同的重新浏览方式分为以下几种情...

告别只是另一种体验
2016/05/28
46
0
Web 开发人员需知的 Web 缓存知识

原文出处: mnot 译文出处: 张鑫旭 最近的译文距今已有4年之久,原文有一定的更新。今天踩着前辈们的肩膀,再次把这篇文章翻译整理下。一来让自己对web缓存的理解更深刻些,二来让大家注意力...

oschina
2013/06/14
26.4K
34
Apache 设置web 缓存

默认情况下,apache安装完以后,是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块...

红薯
2009/05/06
1K
0
webserver缓存策略设置-Apache

Apache缓存策略设置 Apache的过期策略可以通过apache的modexpires和modheaders两个模块设置: 1)模块mod_expires设置: 允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容 mod_ex...

mac_zhao
2015/01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
5
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
1
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
165
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部