网站访问速度优化

作者: , 共 1167 字 , 共阅读 0

前面文章已提到,阅微堂搬迁到了阿里云。受预算的限制,服务器只有单核的 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.

类似文章:
阅微堂从 2014 年之后更新比较少,这之间还关停过两次。每次关停都有一些网友过问,因为有些资料还比较有用。所以,在 2018 年年初开始的关停一年之后,我又把阅微堂给重启了。
IT » DNS
阅微堂之前一直使用 DNSPod 的 NS 服务器,用来解释 zhiqiang.org 的 DNS。Google 蜘蛛的访问报告多次提示有 DNS 解释错误,不过由于问题不严重没有重视。直到 11 月 10 日左右, Google 连续发送了访问失败的邮件,我才发现错误率已经超过 50%!也就是说 Google 对网站的抓取,有一半的时间访问失败。
由于 instantclick 不会重新运行位于 head 部分的 JavaScript 代码,而很多工具性软件,比如 MathJax、百度统计、Google Analytics、Google Code Prettify 等软件都是直接将 JS 文件插入到 head 区域。这导致这些工具在 instantclick 点击后失效,需要重新配置。
编程 » Matlab, 字体
Matlab 默认字体为 Monospaced ,这是种逻辑字体,它在不同语言和操作系统上映射为不同的物理字体。一般在中文系统下, Monospaced 字体被映射到宋体。它很丑,我想换掉它。
IT » django
在 django 的setting.py里可以设置 debug 和 production 模式:
IT » css, 打印
最近碰到这个问题,我需要将网页打印成 PDF 文件。Chrome 可直接将网页保存(打印)为 PDF (无需安装 Adobe ),但式样跟网页上显示的截然不同。我测试了一下用法,了解了其中的一些原理和解决方法,总结如下。
安装 selenium ,使用 requestium 来调用 selenium 程序更为简单,因此可一起安装:
中金所于 2013 年 10 月份推出 5 年期国债期货合约(交易代码 TF ),预计 2015 年会继续推出 10 年期国债期货合约(交易代码 T )。
最近新股收益率非常高。普通投资者直接申购新股,需手头有足够的对应交易所的股票市值,而且小资金申购新股纯属碰运气。证券从业人员也无法申购新股。一种替代的方式是申购打新基金。