使用SAE分发WordPress主题静态文件

08/07/2012

IMUNC 2012已经结束,慢慢开始整理MPC运行的经验,之前写过一片《在Sina App Engine上架设图片CDN》,这次仍旧是在SAE上做文章。

由于网站在日本,而IMUNC期间访问量全部集中在北大(400个人同时在线),而联通的PING值一直出奇的高——没下过800ms,因此如果让所有人从主服务器下载主题的CSS、JS和图片文件,势必会将网速托跨,在这里使用的办法就是用SAE分发主题文件。

方法的这样的,用SVN或是SAE的SDK建立1/wp-content/themes/文件夹,并且将主题包全部上传到这个文件夹下(PHP文件可以不上传)。

在主服务器的主题包的functions.php中增加如下代码:

然后在主题文件中找到要使用Sina App Engine加速的静态文件,将其中的get_template_directory_uri()替换为get_theme_cdn_directory_uri(),例如:

替换为:

这个步骤需要替换大量的代码,建议使用IDE的搜索功能,另外在替换过程中要避免替换PHP文件前的get_template_directory_uri()(不过在PHP文件前写入get_template_directory_uri()本身就不符合规范)。

这个脚本虽然有些麻烦,但对一些大流量的Wordpress站点还是有帮助的,在IMUNC会议三天里,SAE大约分担了45万次请求,有图:

7月31日一天大约有16万次请求

另外,由于SAE的机房就在首都,而IMUNC在北大举行,所以访问速度有巨大提高,大部分时间里网站基本能保持秒开,大大分担了位于日本的主服务器的流量压力。