首页 >
文章 >
杂文
七牛:镜像存储与qrsync数据同步的使用
时间:2014-07-02 08:47:15 点击: 来源: 作者:
你们的镜像存储服务的功能,比传统的cdn有什么特殊的功能吗? 对外域名-七牛域名-原站域名。我想知道如果我网站的服务器数据自动同步到七牛加上镜像服务功能 会不会有冲突。访问速度和响应速度能够增加多少 ...
你们的镜像存储服务的功能,比传统的cdn有什么特殊的功能吗? 对外域名-七牛域名-原站域名。我想知道如果我网站的服务器数据自动同步到七牛加上镜像服务功能 会不会有冲突。访问速度和响应速度能够增加多少?
七牛的镜像存储看起来和传统的CDN比较像,两种都会在加速节点数据不存在的时候回源站抓取。不同之处在于,镜像存储是存储(和普通的存储没什么不同,镜像功能只是存储的一个特性),不是缓存,故此镜像存储对每个资源来说只回源一次,后续访问的时候就不再回源了。所以在源站的url内容会经常发生变化时,并不适合用镜像存储(少量变化是可以接受的,你可以主动删除镜像存储里面的文件,从而达到强制刷新的目的)。
你可以主动同步数据到镜像存储,比如用 qrsync,或者自己写同步上传的代码。这是可以的,而且的确可以获得益处:因为镜像存储在资源第一次被访问时会回源,故此第一次访问会相对慢一点。主动同步数据可以提升第一次的数据访问速度。
另外,镜像存储与qrsync数据同步一起使用,可以很好地将你的网站数据平滑迁移到七牛,无需中断服务。假设源站所有的图片,放在一个叫 img.example.com 子域里。那么平滑迁移的方式是:
- 在七牛上建立一个镜像bucket,设定源站为 img.example.com。假设镜像 bucket 是 example-img,镜像 bucket 对应的域名为 example-img.qiniudn.com。
- 将所有对外使用的图片的域名改为 example-img.qiniudn.com。
- 如果网站数据是 UGC(用户产生内容)的,调整上传流程,传到七牛的镜像 bucket。这样源站就变成只读。
- 使用 qrsync 同步工具将历史数据全部同步到七牛的镜像 bucket。
如此就完成整个迁移过程。此时 img.example.com 这个源站就可以废弃不用了。
你可能会问:如果我希望保留 img.example.com 这个对外的域名,而不是用 example-img.qiniudn.com,可以么?答案是肯定的,不过会相对麻烦点,额外的事情有如下这些:
- 七牛镜像 bucket 的源站,你需要另外指定一个(不能是 img.example.com 了),比如是 img-src.example.com,或者直接用 IP。
- 将 img.example.com 绑定到七牛的镜像 bucket。为了达到这个目的,你需要提交 img.example.com 到七牛进行备案。这里面有人工审核的时间,可能不是即时的。
- 测试镜像存储如你所愿正常工作后,将 img.example.com CNAME 到七牛的镜像 bucket 的域名(比如 example-img.qiniudn.com)。这一步务必小心不要做错,因为这之后你的网站就通过七牛的镜像存储进行服务了。出于谨慎,建议先在本地修改 hosts 文件,将 img.example.com 指向 example-img.qiniudn.com 的IP地址进行测试。
”您可通过以下微信二维码,赞赏作者“