WordPress「CDN 加速」功能背后原理揭秘:对象存储的镜像回源功能详细介绍
WPJAM Basic 插件中一个很重要的功能就是:「CDN 加速」,我已经写了详细的使用介绍文章,但是还是很多同学不会,总是设置不对,甚至还因此诋毁插件。😓
其实这些问题归根结底还是没有真正理解「CDN 加速」功能背后的原理,就是对象存储的镜像回源功能,那么下面就详细介绍下什么是对象存储的镜像回源功能,以及使用对象存储镜像回源功能的时候应该注意的地方。
什么是对象存储的回源功能
对象存储的镜像回源功能是指,当网站的用户请求的资源不存在的时候,可以通过回源规则从设定的源地址获取到正确的数据,然后再返回给网站的用户。
博客上的图片,CSS,JS 这些静态文件一般都是不会经常修改的,使用镜像回源功能把这些静态文件资源镜像到对象存储的服务器上,网站用户访问的时候就直接从云存储的服务器上读取数据,这样可以降低网站服务器读取数据的压力和提高网站的速度。
WPJAM Basic「CDN 加速」功能就是使用镜像回源功能来实现的,这样实现还不影响博客的原来使用体验,原来怎么上传图片还是继续在网站中怎么操作即可。
镜像回源的操作过程和原理
对于 WordPress 博客来说最方便的方法就是安装我写的 WPJAM Basic 插件,然后参照教程一步一步操作即可。
- WordPress 博客使用阿里云对象存储 OSS 进行静态资源 CDN 加速
- WordPress 博客使用腾讯云对象存储 COS 进行静态资源 CDN 加速
- WordPress 使用火山引擎 veImageX 进行静态资源 CDN 加速完全指南
简单说,镜像回源的操作过程和原理是这样的,以阿里云 OSS为例:
- 比如我博客上有一张图片:
http://blog.wpjam.com/wpjam/logo.png
,它的域名是blog.wpjam.com
- 在阿里云 OSS 新建一个空间,比如 wpjam,绑定一个
cdn.wpjam.com
的域名,然后设置镜像回源,“回源地址”设为blog.wpjam.com
。 - 现在就可以通过
http://cdn.wpjam.com/wpjam/logo.png
这个地址访问到保存在博客上的那张图片了。 - 说明:我博客上的任意一张图片,只要它的源站地址是
blog.wpjam.com
,就可以通过将它改成cdn.wpjam.com
访问到。 - 每次通过
cdn.wpjam.com
访问到某张图片的时候,它就会被永久保存在阿里云 OSS 上(除非你手动把它删除),然后每次终端用户访问到的时候都会通过阿里云的 CDN 分发出去。
使用镜像回源需注意的地方
只有当对象存储上没有对应资源情况下,对象存储才会执行镜像回源,向源站请求文件。
假设文件已经通过镜像回源写到了对象存储,如果源站的相同文件发生了变化,对象存储不会更新已经存在于对象存储上的文件,因为此时文件已经在对象存储上,不符合镜像回源的条件,所以:
在源站修改了 CSS 或者 JS 文件,对象存储是不会自动更新的。
那怎么办?你可以:
- 在对象存储管理后台手动更新对应的文件。
- 更改文件名,让对象存储重新镜像一个新的文件。
镜像回源功能看起来和传统的 CDN 比较像,两种都会在数据不存在的时候回源站抓取,不同之处在于,镜像回源是存储不是缓存,故此镜像存储对每个资源来说只回源一次,后续访问的时候就不再回源了。
如果终端用户第一次访问某个资源,终端用户首先从对象存储上访问资源,再让对象存储回源站取资源,然后将取回的资源缓存在对象存储上。因此,第一次访问会有一定的延时,可能比从源站取稍微慢一点,这是正常的,但是第二次第三次访问就可以直接从对象存储上取,一般情况下比从源站取资源会快很多。
也正因为镜像存储第一次取资源时会有延时,因此不推荐镜像文件大小超过 5M 的大文件资源,否则第一次访问会很慢或者出现服务器超时等错误。
网站上的图片镜像到对象存储之后,是否可以删除服务器上的图片,答案是可以的,但是强烈建议不要进行此项操作,因为现在主机空间费用非常低廉,购买一个大点的空间也花不了多少钱。另外图片多保存一份在自己的服务器上也是好的。
为什么不直接上传到云存储
WPJAM Basic CDN 加速功能为什么使用镜像回源而不用对象存储提供的 API 对接?
- 使用 API 对接需要大量时间去对接,并且每家对象存储提供商的 API 都有一些不同,所以每次对接都要花费时间,而每家对象存储的镜像回源功能基本一致,并且 API 对接还会存在一定失败率。
- 使用镜像回源功能可以将已经发布的文章里面的图片也镜像到对象存储上面,你只需要按照使用文档设置好就行,其他什么都不用做,网站上所有图片都会全部镜像到对象存储。
我这里做了更详细的说明:WordPress 的「CDN 加速」功能为什么不直接上传图片到云存储?
最后老是老规矩,贴一下 WPJAM Basic 支持的云存储服务,记得点我的链接,这三家土豪会给佣金的,我有钱赚了,就能够更加专注更新和优化插件了。🤩
云服务 | 链接 |
---|---|
阿里云OSS | https://wpjam.com/go/aliyun |
腾讯云COS | https://wpjam.com/go/qcloud |
火山引擎veImageX | https://wpjam.com/go/volc-imagex |
专题:WordPress CDN 加速:
- WPJAM Basic 的 CDN 加速功能和主题自带的 CDN 功能冲突?怎么办?
- WordPress 不想用 CDN 了,如何替换回服务器本地图片?
- WordPress 使用 CDN 之后,为什么小程序上图片不显示,网站上小图标变成方格?
- WordPress 本地删除图片,CDN 上会同时删除图片吗?
- WordPress 使用 CDN 之后,整个页面乱了,是什么问题呢?
- WordPress 使用 CDN 之后,为什么图片不显示或部分没有被替换成 CDN 域名
- 设置好 WordPress 的「CDN 加速」功能之后,怎么判断站点成功加速了?
- 还在使用 TimThumb 裁剪图片的 WordPress 主题?赶快换了!
- WordPress 「CDN 加速」功能为什么不直接上传图片到云存储?
- WordPress「CDN 加速」功能背后原理揭秘:对象存储的镜像回源功能详细介绍