我的博客第一次加载应当是十分缓慢的。因此我对于这个话题应该是没什么发言权的。

归功于归咎于这羸弱的服务器,CPU 只有 1 个核心。都 1202 年了,为什么还会有这么菜的服务器存在呢?那还不是因为它便宜学生党资金有限,租不起太高配的服务器。

由于 WordPress 是 PHP 编写,所有页面都是由服务器渲染的,我这种 1 核乞丐服务器无法处理如此繁重的任务,只能慢下来了,体验上就显得慢了。(似乎光渲染完一个页面就需要 2s)

不过再打开相同的页面就快了,这得益于页面的缓存机制,让服务器不必重新渲染,让浏览器直接从内存调用相同的内容。


关于如何真正意义上的彻底加速,除了缓存以外,还得借助外来的力量。

对象存储服务(OSS)

如果有谁无聊到对我的博客头图进行 F12 的话,会发现大图的域名都是 upload.hawa130.com,而不是本站的 wp.hawa130.com。

在博客迁移的过程中,我顺便也把服务器存放的大图同步到了阿里云 OSS 的 Bucket 中,这个对象存储服务的域名正是 upload.hawa130.com。

我通过校园网的测试,发现下载是能跑到满速的。(虽然校园网本身并不快就是了,只有 30 Mbps)
之前的视频测试中的视频,就是存储在这个 Bucket 中的,能实现校园网环境下 1080p 视频的流畅播放。(缓冲速度比我网站打开速度快多了TAT)
感兴趣的同学可以试试下载这个视频,看看速度如何。

之前的没用 OSS 的时候,首页头图需要好长时间才能完全显示出来,现在已经能够秒显示了。
所以把图片、视频等大的媒体资源放在 OSS 上,是可以显著提高速度的。

不过缺点就是有点费钱,流量费用是 0.5元/GB。

内容分发网络(CDN)

CDN 可以智能选择距离用户最近的节点,提高网站访问速度。

OSS 只能用于加速不动的媒体等资源,而且本身不用套 CDN 速度也足够快了。

为什么要介绍 CDN 呢?因为它可以实现全站加速!

加速效果最显著的应当是静态资源,比如 CSS 样式表,引用的 JavaScript 库等等,都能通过 CDN 获取显著的加速。
还有缓存的页面也属于静态资源,也能获得明显的加速。

不过一个网站除了静态资源以外,还有动态资源。
这种情况就需要节点服务器利用它的高带宽,来回源获取这些动态内容了。
其实对于我这种小水管服务器动态资源的获取,CDN 其实也没有什么好办法来加速。

阿里云 CDN 劝退我的一点在于,HTTPS 请求是单独计费的,而且价格还不便宜。对于我这种 HTTPS 强迫症的人,而且网站访问量不高的博客来说,这些钱不掏似乎更合适。

CloudFlare这种在国内有显著减速效果的 CDN 服务,还是不要用为妙。

动静分离

什么是动静分离

上面提到过,我把大体积的媒体文件单独放到了 OSS 上,这就是一种动静分离的策略。
CDN 服务器帮我缓存静态的页面、样式表、脚本,动态内容由我的服务器来管理,这也是一种动静分离。
这是一种常用的网站优化策略,将静态资源和动态资源进行分离,可以部署到不同的服务器上。

联系到前面讲的前后端分离,我们也可以将前端以及媒体这种静态资源放到高带宽的存储服务器上,后端资源这种性能要求高的甚至可以直接用云函数。
前后端分离毕竟也属于一种动静分离,所以其优缺点和动静分离优缺点基本一致。

像我这种比较穷的也可以使用 Nginx 缓存,来加速静态页面。

动静分离的优点

首先一定是能够降低服务器负载,减少带宽占用。毕竟更加占带宽的资源都放到其他服务器上了。
也能够有效地提高网站加载速度,不同服务器或程序各取所长,优化网站加载。

动静分离的缺点
似乎除了对爬虫不利,也没什么缺点了?


总而言之,加速网站的核心在于减轻服务器负担、提高带宽,动静分离就能很好地做到。


以上内容仅代表个人拙见。若有不足之处,感谢批评指正。

分类: 知识

发表评论

邮箱地址不会被公开。 必填项已用*标注