web站点优化之Expires缓存

建站 ouk 1019℃ 0评论

与Expires接触有一段时间,迟迟没有真正动手实践过,最近打算对公司网站做一些性能方面的优化,所以又来与Exprires接触了一把
expires主要是对站点组件、图片等设置一个过期时间,web服务器使用Expries头来告诉web客户端它可以使用一个组件的副本,直到时间截止
才重新从服务器端加载组件。
web服务器为apache,在apache配置文件中找到LoadModule expires_module modules/mod_expires.so去掉前面的#
在网站根目录下的.htaccess文件中加入expires设置如下
ExpiresActive On
ExpiresByType text/plain "access plus 30 days"
ExpiresByType text/css "access plus 30 days"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/x-icon "access plus 30 days"
ExpiresByType video/x-flv "access plus 30 days"
ExpiresByType text/javascript "access plus 30 years"
ExpiresByType application/x-shockwave-flash "access plus 30 days"

这里设置了css、pic、js、flash文件过期时间,
注意:expires使用了特定的时间,并且要求服务器和客户端的是中严格同步,在设定过期时间时,一般还会使用Cache-Control,如下所示

#文件缓存时间配置
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css)$”>
Header set Cache-Control “max-age=2592000″
</FilesMatch>

不过对于不支持http1.1浏览器,Cache-Control是无法识别的,还是需要使用expries,所以两种方法结合使用,对于支持http1.1浏览器,同时使用两种方法,Cache-Control会覆盖expries设置

如果web服务器为Nginx,则expires规则加载Nginx配置文件的server{}下面,具体添加方法如下:
#Nginx Expires
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
root /var/www/html;
expires 30d;
}
location ~ .*\.(js|css|html)?$ {
root /var/www/html
expires 30d;
}

这里要指定根目录,不然对应设定图片和组件,会无法显示

转载请注明:OUK技术人生 » web站点优化之Expires缓存

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址