在apache2中开启http缓存的方法
近日,有使用美国linux vps的用户在咨询如何在apache2中开始http缓存,所以专门做了这教程。在apache2中配置http缓存,其实也就是配置mod_expires模块。
第1步
LoadModule expires_module modules/mod_expires.so
在httpd.conf中,找到上面的代码,然后将前面的#去掉
第2步
在httpd.conf中加入以下代码,可以加到任何空白地方,不了解apache的朋友,如果担心加错地方,就放到http.conf文件的最后一行。
<IfModule mod_expires.c> ExpiresActive On #激活http缓存,也就是个开关,必须有的一段代码 ExpiresDefault A604800 #默认缓存时间为604800秒,也就是7天,A表示以客户端时间为准 ExpiresByType text/css A3600 #对css文件缓存3600秒,也就是1小时,A表示以客户端时间为准 ExpiresByType text/html A3600 #对html文件缓存3600秒,也就是1小时,A表示以客户端时间为准 ExpiresByType application/x-javascript A3600 #对javascript文件缓存3600秒,也就是1小时,A表示以客户端时间为准 ExpiresByType image/gif "access plus 2 month" #对gif图片缓存2个月,以客户端时间为准 ExpiresByType image/jpeg "access plus 2 month" #对jpeg和jpg图片缓存2个月,以客户端时间为准 ExpiresByType image/png "access plus 2 month" #对png图片缓存2个月,以客户端时间为准 ExpiresByType image/x-icon "access plus 2 month" #对浏览器小图标缓存2个月,以客户端时间为准 ExpiresByType application/x-shockwave-flash A2592000 #对flash文件缓存2592000秒,也就是1个月,A表示以客户端时间为准 #特别注意也可以使用 ExpiresByType text/css M3600 这里的M表示以文件最后修改时间为准缓存1小时,例如有些时候,我们的HTML是大批量定时更新的,这个时候就可以用到M Header unset Pragma #删除掉http头信息中的Pragma,不懂的可以google一下Pragma,他也是控制浏览器缓存的,不过是用于http1.0标准 FileETag None Header unset ETag #这段代码和上面一段的作用是不使用http1.1标准中的ETag属性 <FilesMatch "\.(js|css|ico|pdf|flv|jpg|jpeg|png|gif|mp3|mp4|swf)$"> #针对js|css|ico等后缀的文件进行单独设置 #Header set Expires "Thu, 15 Apr 2013 20:00:00 GMT" Header unset Last-Modified #不使用http头信息中的Last-Modified属性,Last-Modified是指文件最后修改时间 Header append Cache-Control "public" #设置为可被任何缓存区缓存 </FilesMatch> </IfModule>
配置完了以后,别忘记了重启apache服务器哦!
如果用的虚拟主机,而虚拟主机支持.htaccess,则可以将上面的代码放到.htaccess文件中。



