您的位置:首页 > 运维架构 > Apache

Apache缓存策略配置——mod_expires和mod_headers

2014-07-07 22:07 465 查看
首先需要在/etc/apache2/httpd.conf导入模块

LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so


1)模块mod_expires设置:

允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容

mod_expires
模块的主要作用是自动生成页面头部信息中的 Expires 标签和 Cache-Control 标签,从而降低客户端的访问频率和次数,达到减少不必要流量和增加访问速度的目的

mod_expires
是 apache 众多模块中配置比较简单的一个,它一共只有三条指令

ExpiresActive
指令:打开或关闭产生”Expires:”和”Cache-Control:”头的功能。

ExpiresByType
指令:指定MIME类型的文档(例如:text/html)的过期时间。

ExpiresDefault
指令:默认所有文档的过期时间。

过期时间的写法

“access
plus 1 month”

“access
plus 4 weeks”

“now
plus 30 days”

“modification
plus 5 hours 3 minutes”

A2592000

M604800

access、now及A
三种写法的意义相同,指过期时间从访问时开始计算。

modification及M
的意义相同,指过期时间是以被访问文件的最后修改时间开始计算。

所以,后一种写法只对静态文件起作用,而由脚本生成的动态页面不受它的作用

配置实例:

ExpiresActive On(开启mod_expires功能)
ExpiresDefault "access plus 6 months"(默认的过期时间是6个月)
ExpiresByType image/* "access plus 10 years"(图片的文件类型缓存时间为10年)
ExpiresByType text/* "access plus 10 years"(文本类型缓存时间为10年)
ExpiresByType application/* "access plus 30 minutes"(application文件类型缓存30分钟)


验证:image/jpeg
缓存时间为315360000s(10年)



如果将image/jpeg设置为不缓存(将max-age设置为0s):

#
ExpiresByType image/* "access plus 10 years"

ExpiresByType
image/* A0



2)模块mod_headers设置:

# YEAR(flv,gif,ico文件类型的缓存时间为1年)
Header set Cache-Control “max-age=2592000″

# WEEK(pdf.swf,js,css缓存时间为一周)
Header set Cache-Control “max-age=604800″

# NEVER CACHE(jsp.swf,ico文件类型不缓存)
Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”
Header set Cache-Control “no-store, no-cache, must-revalidate”
Header set Pragma “no-cache”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: