告别FTP,使用Origin Pull方式加速WordPress静态文件




去年某一段时间,不知道什么原因,从电信访问一些服务器位于美国的网站(包括但不限于我自己的网站)速度极其地慢,慢到没有浏览器缓存根本打不开任何页面,即使打开了也是残缺的程度。于是我开始考虑使用国内的云存储来托管静态文件,这样可以大大减少网页的载入时间。

我在网上找到的方案虽然各不相同,但是思路都差不多:用插件将服务器上的静态文件上传到云存储并定期进行同步,然后将服务器上的静态文件指向该云存储空间。我感觉这种方式非常反人类,因为很多东西需要手动去操作。当然,这只是我的主观感受,实际上应该不会有这么糟糕。而且当时又拍云的静态文件CDN,以及开源的LayerCDN都提供Origin Pull方式,比前文所说的“上传并同步“方式不知道高到哪里去了。

Origin Pull的大概思路是当客户端请求CDN上的某个静态文件,CDN就会到源站去抓取这个文件并返回给客户端,然后将它保存在自己的缓存中。当客户端再一次请求同一文件时,CDN就会直接从自己的缓存中读取这个文件,返回给客户端。它的好处是源站不需要做太复杂的设置,并且可以灵活地切换。

本文以又拍云为例。注意虽然又拍云目前不提供免费服务,但是价格很便宜,并不会造成很大的负担。

配置又拍云CDN

登入又拍云控制面板,新建一个”静态文件CDN“类型的空间,填入相关信息。

pic-027

完成之后在域名绑定页面里可以看到一个为你分配的二级域名,通常是xxxx.b0.upaiyun.com。如果你需要绑定自己的域名的话,域名需要备案。

进入CDN设置页面,填入相关的信息。

pic-028

三个空都填入你的域名就可以。

接下来他会给你一个文件让你上传到网站的根目录,按照提示操作即可。

配置W3 Total Cache

W3 Total Cache是一个相对重量级的缓存插件,它提供非常丰富的缓存及加速(包括CDN)支持。

进入W3 Total Cache的CDNGeneral Settings页面,找到CDN选项卡,勾选Enable,CDN Type填Generic Mirror。

pic-029

完成之后进入CDN页面,找到Configuration选项卡,在Replace site’s hostname with中填入你的又拍云空间url,然后点击Test Mirror,如果显示绿色的Test Passed则表明没有问题。

现在查看你的网页的源代码,你会发现所有的静态文件都已经变为从又拍云的空间加载。配合W3 Total Cache的各项缓存功能,每次服务器只需要处理少量的动态请求。这样就再也不用担心打开网页会无限转菊花了。

LayerCDN

最后再来一发安利。LayerCDN是一个使用php写成的轻量级CDN程序(虽然算不上严格意义上的CDN)。可以部署到包括SAE、BAE在内的各种云服务或普通php主机。实现和上文几乎一样的效果。具体可以访问LayerCDN的主页




Posted

in

by

Comments

发表回复/Leave a Reply

您的电子邮箱地址不会被公开。/Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.