插件中一个很重要的功能就是:「」,我已经写了详细的使用介绍文章,但是还是很多同学不会,总是设置不对,甚至还因此诋毁插件。😓
其实这些问题归根结底还是没有真正理解「CDN 加速」功能背后的原理,就是对象存储的镜像回源功能,那么下面就详细介绍下什么是对象存储的镜像回源功能,以及使用对象存储镜像回源功能的时候应该注意的地方。
什么是对象存储的回源功能
对象存储的镜像回源功能是指,当网站的用户请求的资源不存在的时候,可以通过回源规则从设定的源地址获取到正确的数据,然后再返回给网站的用户。
博客上的图片,CSS,JS 这些静态文件一般都是不会经常修改的,使用镜像回源功能把这些静态文件资源镜像到对象存储的服务器上,网站用户访问的时候就直接从云存储的服务器上读取数据,这样可以降低网站服务器读取数据的压力和提高网站的速度。
WPJAM Basic「CDN 加速」功能就是使用镜像回源功能,并且并不影响博客的原来使用体验,原来怎么上传图片还是继续在网站中怎么操作即可。
镜像回源的操作过程和原理
对于 WordPress 博客来说最方便的方法就是安装我写的 插件,然后参照教程一步一步操作即可。
简单说,镜像回源的操作过程和原理是这样的,以阿里云 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 的大文件资源,否则第一次访问会很慢或者出现服务器超时等错误。
网站上的图片镜像到对象存储之后,是否可以删除服务器上的图片,答案是可以删除服务器上的图片,但是强烈建议不要进行此项操作,因为现在主机空间费用非常低廉,购买一个大点的空间也花不了多少钱。另外图片多保存一份在自己的服务器上也是好的。
推荐阅读:
点击下面公众号卡片关注「WordPress果酱」
每天分享 WordPress 使用技巧