使用 OSS 和 CDN 完成 WordPress 网站动静分离
什么是 OSS
OSS 是阿里家的云存储服务(腾讯家的对象存储叫 COS),你可以简单的把它看成一个云端文件管理系统。不同的是,对象没有层级结构(这点和 Liunx 的文件不大一样)。
什么是 CDN
CDN 全名内容分发网络,是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络,换句话讲,你可以把它当成一个超大的局域网,每当用户请求某一资源时,CDN 会优先从最近节点返回请求内容给用户,不会占用 Web服务器 的带宽,达到快速加载的效果。此外,CDN 还能在一定程度上防 DDoS 攻击(如果 CDN 存在被 DDoS 攻击的情况。CDN 整个系统就能够将被攻击的流量分散开,节省站点服务器的压力以及节点压力)
什么是动静分离
在刚搭建好 WordPress 后,我们的媒体文件(图片,视频,音频等)都是存放在服务器本地的。每当用户访问的时候,就会从服务器中调出来显示到网页上。但是总所周知,媒体文件占用空间通常都是比较大的,而国内的个人服务器带宽又比较低。在这种情况下,访问页面就容易造成堵塞 —-在阿里云学生机 1M 带宽的限制下,平均1个3,400+KB的网页需要3秒钟才能下载完成。当同时访问网页的 ip 变多了之后,明显的卡顿会大幅降低浏览体验。而且媒体文件都在 而动静分离,顾名思义就是将静态资源和动态页面分离开来的做法,通过将媒体文件(或者其他静态资源)储存到各类云存储服务器中去(比如说阿里云的对象存储 OSS)。这样用户访问网页时,动态资源还是从 Web服务器 获取,而静态资源就直接通过距离用户最近的 CDN 节点就近获得文件,减少 Web服务器 负载,同时也能显著提升页面加载速度。
将静态资源上传到 OSS 中
没买 OSS资源包 的话记得先买一个 OSS资源包(9¥/年) 或者选择 按量付费。然后新建 bucket: 这里需要注意的是 bucket 的地域记得和 ECS服务器 的地域一致(这样可以走内网,不浪费流量)。 然后回到 WordPress 安装好 阿里云OSS 这个插件。 这里其实时很方便的,因为 WordPress 有 阿里云OSS 这个插件,能一键配置。 Access Key 在下图这个位置查看。
进入 WordPress 的 阿里云OSS 这个插件,按要求填好后(记得 Bucket 域名填内网域名) 填好后如果没有错误的话,在媒体库里就能看见所有的媒体文件链接都变成了 阿里云bucket 的链接,这时候就表示我们的 bucket 设置好了。
使用 CDN 提速网站
当然,只有 OSS 是不够的,这只代表我们把数据放到了云端.实时访问的时候还是从 OSS --> 服务器 --> 用户
,由于 OSS 文件访问比本地慢,所以这样反而会降低速度。我们还需要 CDN 来进行加速,改成 OSS --> CDN服务器 --> 用户
的形式。 幸运的是:各大服务商早就极大程度上简化了这个过程,这里以阿里云为例。 我们在刚刚的 bucket 页面,单击域名管理 然后绑定一个二级域名,这里不是网站主域名,随便绑定一个不会用到的二级域名即可。 然后我们返回到 阿里云OSS插件 页面,把 bucket域名 改成此域名即可。如下图
到此,我们所有的操作就搞定了,在网站页面按
F12
调出控制台,在 Sources 栏目下就能看见我们的静态资源是从刚才设置的 CDN域名 处调用的