个人博客在国内的访问加速

最近开始研究国内访问的解决方案。

可行的方法无非有两种,一是使用第三方的 DNS 服务器,比如 DNSPod,一个国内的免费 DNS 服务器,提供免费的 DNS 解析、流量监测等服务,通过简单的 6 步设置,就可以把域名的 DNS 解析放到 DNSPod 上,解析速度一般低于 100ms(免费版)。

不过即使有了国内的 DNS 解析,博客的内容依然是在国外的服务器上,访问速度依然慢。于是就有了第二种解决方案,CDN。它的全称是 Content delivery network,工作原理大致是把网站的内容缓存到一些网络节点上,终端用户只需访问离他最近的节点即可,大大地减少了数据包传输的物理距离,从而提升网站的实际访问速度。

听上去 CDN 很美好,但是实际上多数 CDN 服务都是要收费的,而且动辄就是成千上万的年费,个人博客实在负担不起。不过最近貌似有免费的 CDN 服务出来了,比如 Webluker,是一家国内的 CDN 服务商,提供免费的 CDN、DNS 解析等服务。兴冲冲地去试了一把,于是就放弃了。据说还有一家 CoCDN 的,现在连主页都打不开了,情何以堪-_- 国外也有免费的 CDN,它家最近的节点在日本,而 GoDaddy 的服务器在新加坡,从网速上差不了多少,还是不用了吧。

于是目前可行的方案就是在 DNSPod 上注册了一个解析服务,其它什么事情也干不了@@

对 WordPress 启用 Deflate 压缩

对网页内容进行压缩,可以减少网络传输的成本,加快网站的访问速度。常见的用于网页压缩的算法是 gzipdeflate,实际上 gzip 是 deflate 的一种实现。在客户端,浏览器发送 HTTP 报头 Accept-Encoding 来告诉服务器,自己所能接受的压缩格式(也可以要求不压缩),然后服务器根据请求来压缩网页,并把压缩格式通过报头 Content-Encoding 返回给客户端。

不知道为什么,Wordpress 在安装的时候不会自己搞定压缩这件事,估计是考虑到部分 Web 服务器不支持压缩。还好 GoDaddy 的共享主机(用的是 Apache )支持压缩,并可以通过修改.htaccess 文件来启用它。

具体的方法是,在.htaccess 文件(一般在 FTP 的根目录上)中,加入以下代码:

这段代码是说,如果存在mod_deflate,且输出的内容格式为 js / css / php / xml / html / dtd 的话,则启用 deflate 压缩。

配置完成之后,可以通过站长之家提供 gzip 压缩检测工具来测试。以下是 Leonax.net 的测试结果:

网址 http://leonax.net 检测结果如下:
是否压缩
压缩类型 gzip
原始文件大小 75110 字节
压缩后文件大小 21173 字节
压缩率(估计值) 71.81%

2011/12/16更新:

.htaccess 是 Apache 的一个功能,允许用户在某个文件夹下,复写某些全局的设置。比如上述 deflate 设置,也可以写在 /etc/httpd/conf/httpd.conf 文件中,这样 Apache 所管理的所有主机的输出都会被压缩。当然,前提是你有更改 httpd.conf 的权限。