前面文章已提到,阅微堂搬迁到了阿里云。受预算的限制,服务器只有单核的 CPU ,内存只有 1G ,同时又安装的是 windows 系统,导致服务器性能极低下。网络带宽也只有 1M (即最大理论下载速度只有 128k/s ),访问速度受到极大的影响。不得已,采取若干中方法降低服务器性能和带宽压力,提升页面访问和显示速度。
1、全站静态化
WP Super Cache 将整个博客静态化了,并且在访问过程中不用调用 PHP 模块,极大降低了对 CPU 以及内存的占用,是降低服务器性能压力、提升访问速度的主要功臣。
2、使用 CDN 静态库
博客使用的 jquery、bootstrap、字体等静态文件全来自于公用的静态 CDN。我选择的是百度静态资源公共库,这里提供的资源最全。这种方式存在多个好处:
- 降低对服务器资源的占用。
- 公开库通常由大厂商维护,有多个 CDN 节点,访问速度比自己的服务器要快得多。比如百度静态资源公共库由百度遍布全国各地 100+个 CDN 节点提供加速服务。
- 由于有很多网站调用同样的静态文件,这些文件很有可能在本次访问前已经缓存到本地,极大地增加网页渲染的速度。
3、用字体替代图标
之前网页设计者通常使用一种 css sprite 的技术,将图标拼到一张图上,通过 css 调整显示位置以显示正确的图标,以降低浏览器申请服务器资源的次数。这样做太费时费力。现在取而代之的一种技术是字体图标。
这种技术下,图标和普通文字的显示方式一样,这意味着它可以随意缩放,可以设置背景色、字体颜色,以及通过 CSS 实现更复杂的效果。
我使用了的是http://fontawesome.io/,目前最流行的开源图标字体库,内有 400 多个图标。
4、使用 instantclick
我在几个月前就安装了 instantclick,效果非常好。instantclick 主要的原理是有两个,
其一是用户在点击链接跳转时,在将鼠标移到链接上到点下去,这中间有大约 100ms 不等的时间, instantclick 利用这个间隔提前下载链接内容,当需要跳转时,就节约了大量下载网页内容的时间;
其二, instantclick 显示跳转后的页面时,会重用之前的网页框架,直接利用前一个网页缓存的静态文件内容(比如 CSS、JS 文件),这大大降低了本地网页渲染所需要的时间。
不过 instantclick 主要降低二次访问所需要的时间,对于用户的第一次访问无能为力。
5、全站启用 CDN
我的域名解释一直托管在安全宝上,而安全宝提供免费 CDN 服务,配置非常简单,我已将其打开。CDN 对于大访问量可大大降低原服务器的性能和带宽压力,但本博客访问量不高,从后台显示数据看, CDN 的回源率很高。现在开着这个,就当做一次试验吧。
Q. E. D.