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


启用expires_module模块

LoadModule expires_module modules/mod_expires.so


启用有效期控制

ExpiresActive On


全局配置,放在主conf或者虚拟域名的conf中

<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 12 months"
        #禁止ajax的缓存
        ExpiresByType application/json "access plus 0 seconds"
        #ExpiresByType text/html "access plus 12 months"
        #ExpiresByType text/css "access plus 12 months"
        #ExpiresByType text/javascript "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 application/javascript "access plus 12 months"
        #ExpiresByType video/x-flv "access plus 12 months"
</IfModule>



mod_expires 实例:

<Directory /opt>
  ExpiresActive On
  ExpiresDefault "accesss plus 3600 seconds"   如果是1秒,后面也是seconds
  ExpiresByType application/octet-stream "accesss plus 1 months"  这是对特殊文件类型bin缓存1个月
  <FilesMatch ^data.swf$> 针对opt目录下data.swf设置Expire值
   ExpiresActive On
   ExpiresDefault "accesss plus 60 seconds"
  </FilesMatch>
</Directory>


mod_headers实例

<Directory /opt>
  header set cache-control "max-age=3600"
  <FilesMatch ^data.swf$>
  header set cache-control "max-age=60"
  </FilesMatch>
</Directory>

ExpiresByType比ExpiresDefault优先级高.当expires和max-age同时存在时,max-age的优先级会高于expires.


设置缓存也可以通过mod_headers模块修改cache-control来实现.

header set cache-control "max-age="3600".