[Apache]mod_expires模块的编译和安装

十二 20th, 2011

假设已经安装好apache,安装路径为/usr/test/httpd/

下载apache 的源码包在目录/home/admin/soft/

Image

进入modules下的metadata目录,这里面存放着我们的模块源码:

假设我们的apache已经安装到/usr/test/httpd 目录下面,那么我们可以利用该目录下的apxs进行编译

/usr/test/httpd/bin/apxs –i –c –a /home/admin/soft/modules/metadata/mod_expires.c

在httpd.conf末尾增加以下内容:

<IfModule mod_expires.c>

       ExpiresActive On
       ExpiresDefault "access plus 12 month"
       ExpiresByType text/html "access plus 12 months"
       ExpiresByType text/css "access plus 12 months"
       ExpiresByType image/gif "access plus 12 months"
       ExpiresByType image/jpeg "access plus 12 months"
       ExpiresByType image/jpg "access plus 12 months"
       ExpiresByType image/png "access plus 12 months"
       EXpiresByType application/x-shockwave-flash "access plus 12 months"
       EXpiresByType application/x-javascript "access plus 12 months"
       ExpiresByType video/x-flv "access plus 12 months"

</IfModule>


具体配置内容可参考mod_expires模块手册

附上mod_expires的介绍

mod_expires概述
这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期(expiration date)可以设置为相对于源文件的最后修改时刻或者客户端的访问时刻。
这些HTTP头向客户端表明了文档的有效性和持久性。如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取。接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新。
要修改Cache-Control头中max-age(参见RFC 2616 section 14.9)项之外的内容,你还可以使用Header指令。

ExpiresActive 指令
说明 启用或禁用产生"Expires:"和"Cache-Control:"头的功能
语法 ExpiresActive On|Off
作用域 server config, virtual host, directory, .htaccess
模块 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 <code>seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
这个指令定义了为指定MIME类型的文档(如text/html)生成的Expires头的值和Cache-Control头的max-age指令。 seconds参数设置了添加到基准时间以构造有效期限的秒数。Cache-Control: max-age的计算方法是从有效期减去当前请求时间并转化为秒数。
基准时刻可以是源文件的最后修改时刻或者客户端对源文件的访问时刻,至于使用那一个则由<code>指定。"M"表示源文件的最后修改时刻,"A"表示客户端对源文件的访问时刻。需要注意的是<code>和seconds之间没有空格。
这两种基准的差别是很微妙的。如果使用"M",所有当前缓存中的文档副本都将在同一时刻过期,这个可能对定期更新的URL(比如位于同一位置的每周通告) 很有好处。如果使用"A",则每个客户端所得到的有效期是不一样的,这个可能对那些几乎不更新的图片文件很有好处,特别是对于一组都引用了相同图片的相关文档。

ExpiresDefault 指令
说明 默认有效期的计算方法
语法 ExpiresDefault <code>seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
该指令设置了其作用范围内的所有文档的默认有效期的计算方法,它可以被ExpiresByType指令基于MIME类型被改写。详情请参见ExpiresByType指令和那个alternate syntax的描述。





除非注明,本站文章均为原创。本文基于 BY-NC-SA 协议进行授权,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 metaboy(包含链接).

本文链接地址: http://blog.wangyuxiong.com/archives/51459

订阅本站:http://www.wangyuxiong.com/feed

分类: 思考讨论         标签: , ,
目前还没有任何评论.

无觅相关文章插件,快速提升流量