#WPJAM Basic# 插件中一个很重要的功能就是:「CDN 加速」,我已经写了详细的使用介绍文章,但是还是很多同学不会,总是设置不对,甚至还因此诋毁插件。😓
其实这些问题归根结底还是没有真正理解「CDN 加速」功能背后的原理,就是对象存储的镜像回源功能,那么下面就详细介绍下什么是对象存储的镜像回源功能,以及使用对象存储镜像回源功能的时候应该注意的地方。
对象存储的镜像回源功能是指,当网站的用户请求的资源不存在的时候,可以通过回源规则从设定的源地址获取到正确的数据,然后再返回给网站的用户。
博客上的图片,CSS,JS 这些静态文件一般都是不会经常修改的,使用镜像回源功能把这些静态文件资源镜像到对象存储的服务器上,网站用户访问的时候就直接从云存储的服务器上读取数据,这样可以降低网站服务器读取数据的压力和提高网站的速度。
WPJAM Basic「CDN 加速」功能就是使用镜像回源功能来实现的,这样实现还不影响博客的原来使用体验,原来怎么上传图片还是继续在网站中怎么操作即可。
对于 WordPress 博客来说最方便的方法就是安装我写的 #WPJAM Basic# 插件,然后参照教程一步一步操作即可。
简单说,镜像回源的操作过程和原理是这样的,以阿里云 OSS为例:
http://blog.wpjam.com/wpjam/logo.png
,它的域名是 blog.wpjam.com
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 对接?
我这里做了更详细的说明:WordPress 的「CDN 加速」功能为什么不直接上传图片到云存储?
最后老是老规矩,贴一下 WPJAM Basic 支持的云存储服务,记得点我的链接,这三家土豪会给佣金的,我有钱赚了,就能够更加专注更新和优化插件了。🤩
云服务 | 链接 |
---|---|
阿里云OSS | https://wpjam.com/go/aliyun |
腾讯云COS | https://wpjam.com/go/qcloud |
火山引擎veImageX | https://wpjam.com/go/volc-imagex |