使用SAE分发WordPress主题静态文件
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中增加如下代码:
1 2 3 4 5 |
define( 'THEME_CDN', 'http://SAE应用域名.sinaapp.com/wp-content/themes/主题名' ); //注意主题名后面没有斜杠 function get_theme_cdn_directory_uri() { return THEME_CDN; } |
然后在主题文件中找到要使用Sina App Engine加速的静态文件,将其中的get_template_directory_uri()替换为get_theme_cdn_directory_uri(),例如:
1 <script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/functions.js"></script>替换为:
1 <script type="text/javascript" src="<?php echo get_theme_cdn_directory_uri(); ?>/js/functions.js"></script>
这个步骤需要替换大量的代码,建议使用IDE的搜索功能,另外在替换过程中要避免替换PHP文件前的get_template_directory_uri()(不过在PHP文件前写入get_template_directory_uri()本身就不符合规范)。
这个脚本虽然有些麻烦,但对一些大流量的Wordpress站点还是有帮助的,在IMUNC会议三天里,SAE大约分担了45万次请求,有图:
另外,由于SAE的机房就在首都,而IMUNC在北大举行,所以访问速度有巨大提高,大部分时间里网站基本能保持秒开,大大分担了位于日本的主服务器的流量压力。
评论