网站访问速度优化

作者:, 发表于

前面文章已提到,阅微堂搬迁到了阿里云。受预算的限制,服务器只有单核的CPU,内存只有1G,同时又安装的是windows系统,导致服务器性能极低下。网络带宽也只有1M(即最大理论下载速度只有128k/s),访问速度受到极大的影响。不得已,采取若干中方法降低服务器性能和带宽压力,提升页面访问和显示速度。

1.全站静态化

WP Super Cache将整个博客静态化了,并且在访问过程中不用调用PHP模块,极大降低了对CPU以及内存的占用,是降低服务器性能压力、提升访问速度的主要功臣。

2.使用CDN静态库

博客使用的jquery、bootstrap、字体等静态文件全来自于公用的静态CDN。我选择的是百度静态资源公共库,这里提供的资源最全。这种方式存在多个好处:

  1. 降低对服务器资源的占用。
  2. 公开库通常由大厂商维护,有多个CDN节点,访问速度比自己的服务器要快得多。比如百度静态资源公共库由百度遍布全国各地100+个CDN节点提供加速服务。
  3. 由于有很多网站调用同样的静态文件,这些文件很有可能在本次访问前已经缓存到本地,极大地增加网页渲染的速度。

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.


上一篇:博客迁移至阿里云2015年1月10日
博客迁移到阿里云,运行环境为windows 2003 + WAMP 2.4,并完成备案。


  1. 这么说来,你做的工作还不少。要是其中之一的服务挂掉了?你的不稳定性是不是也上升了?所以我只用自己的主机,它在网站在,它不稳定网站不稳定。

  2. 对的。这里面CDN服务挂了会比较讨厌,所以我现在也停掉了。访问量不大,CDN也没啥用。其它服务不会挂(比如instantclick只是一段代码谈不上挂),或者挂的可能性极低(比如百度静态库)。

  • 支持使用微薄、人人网和QQ的账户登陆进行评论。由各自网站直接认证,不会泄露你的密码。
  • 登陆后可选择分享评论到所绑定的社交网络,如微薄、人人和QQ空间。
  • 评论提交后无法修改。如需修改,请删除原评论再重新提交。
  • 评论支持LaTeX代码,行内公式请用\(a+b=c\),行间公式请用\[a+b=c\]。公式只支持英文字符。