五维工作室

这里是你们可以实现梦想的地方

分布式环境静态资源js,css缓存控制

1.通过last-modified 最后修改时间
expires:Mon, 18 Sep 2017 03:10:01 GMT
last-modified:Sat, 19 Aug 2017 00:59:42 GMT

2.通过 etag
etag:W/"59978d7e-14ee"
etag由两部分组成,前面的是文件修改时间,后面的是文件大小

所以分布式环境下,必须在部署的时候同步所有不同服务器文件的修改时间
方法有三个
1.通过svn获取最新log的提交时间,然后通过touch 更新静态资源的文件修改时间,并使得所有服务器的文件修改时间保持一致
svn_mtime=`svn log -q -l 1 | awk '{print $5" "$6}'
find . -exec touch -d "${svn_mtime}" {} ;

2.通过客户端提交一个version.txt,然后记录最后提交的时间
svn_mtime="$(sed 's/^\s*//;s/\s*$//' version.txt)"
find . -exec touch -d "${svn_mtime}" {} ;

3.通过scp或者rsync去同步,这里不讨论这个,scp不支持增量,rsync需要额外的启动服务配置复杂,是否成功需要每一台机器
都去care

https://www.tipsns.com/read/34.html 这里是使用的第二种方法,可以让静态资源进行缓存

添加新评论