运行于GAE的Micolog博客主题终极优化篇
之前google app的一些动作让我们有些失望,他们将CPU的使用率和每日的输出流量都减少了,CPU的影响倒不是很大,因为博客使用了缓存,其中每日输出流量从2G改为1G最使人恼火。当然对大多数博客已经够用了,但我们还要未雨绸缪,做些优化来减少或平摊一下流量。
使用绝对路径,路径中注意大小写(使用python的缘故)。目的是减少重复加载文件。减少宽带输出量,并且也对网站有加速的作用。调用js文件较多的网站尤为重要。
1.将站内所有的图片都用绝对路径,包括css中的。
在style.css中的所有相对路径替换成绝对路径 如
#container #wrapper {
width: 900px;
float: left;
overflow: hidden;
background: #d6ded4 url(upload/2009/10/200910112231300220.gif) repeat-y top right;
}
2.改javascript函数为文件调用形式。并用绝对路径。
其中公用的部分建议用官方提供的链接,比如jquey库。这样做的好处是大多数网站都在使用这样通用库,如果访问到您的博客就不用重新加载了。如
<script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
把其他的改为绝对路径调用,如
QQ表情的js
<script type="text/javascript" src="http://hou-kai.appspot.com/themes/Devart/smile.js">
其他的同样,如果js中有中文字符,需将js文件以utf-8格式保存。比如下面commnent.js是利用ajexa提交评论,但函数内有中文提示。还有taotao.js也是utf-8格式。
<script src="http://hou-kai.appspot.com/themes/Devart/cookie.js" type="text/javascript"></script>
<SCRIPT src="http://hou-kai.appspot.com/themes/Devart/commenttips.js" type="text/javascript"></SCRIPT>
<SCRIPT src="http://hou-kai.appspot.com/themes/Devart/comment.js" type="text/javascript"></SCRIPT>
<script type="text/javascript">var taotao_qq=63956135; var taotao_num=5;var taotao_type=0;</script><script type="text/javascript" charset="utf-8" src="http://hou-kai.appspot.com/themes/Devart/taotao.js"></script>
经过这步,我明显感觉用ajexa提交留言的速度快了。还可以对js进行合并,并用YUI Compressor 工具对 JavaScript 和 CSS 代码进行压缩(非必要)。
3.绝对路径中用yourID.appspot.com二级域名。
为什么上面我用http://hou-kai.appspot.com/,而不用http://www.houkai.com/呢,因为我们绑定的域名只是google在ghs服务器上做了一个反向代理,最终还是调用前者的内容,这也是为什么*.appspot.com支持https,而绑定的域名不支持,是因为反向代理没有提供这样的功能。
前面写过一篇博文,来悼念阵亡的ip,现在用来绑定域名的ip已经是聊聊无几,我一直在想ip用完了怎么办,难道我们的博客就关门大吉,或者导出数据转移到Wordpress。现在Micolog程序还有缺陷,如果转移到Wordpress感觉数据也会有所丢失。而且,我还是比较喜欢python的。有没有其他办法呢。
请大家先看看 http://w92.houkai.com。这是我用国内ip做了一个反向代理,很简单,就是用w92.houkai.com来代理hou-kai.appspot.com。这台机子的ip是个公网ip,我在该机子用phpnow搭建了个php环境,本来想用来做个掘客,但一直太懒闲置着。如果我在Micolog后台设置域名为w92.houkai.com,是不是和google提供的ghs效果一样。
上面用appspot.com的绝对路径的目的就是要绕过反向代理直接调用,这样就可以减少对反向代理的压力。毕竟用的ghs都放在国外的某个主机,appspot的速度还是很快的(我猜想它有流量均衡机制)!
4.分摊流量。
因为google app 对每个项目都有流量和cpu方面的限制,但每个用户可以最多申请10个项目。所以我们可以用两个或者三个项目来分散流量,你可以观察,凡是大型网站一般主题发面的图片都会存放在另一个二级域名下。这样可以减少对主站的压力。
那么如果分摊流量呢。一般用Micolog的博主也都在用大菠萝相册来做图床。您可以将主题包放在大菠萝程序内。修改一下app.yaml来缩短路径(非必要),把Micolog主题中的hou-kai.appspot.com换成大菠萝相册的二级域名路径。
还有一种最最简单的方法,就是再开一个项目,比如我再新建一个houkaiblog.appspot.com,把Micolog程序中的hou-kai.appspot.com主题中绝对路径全部替换成houkaiblog.appspot.com。将同一程序分别上传到两个项目传就ok了!这样www.houkai.com 主题中css、js、图片等文件调用的就是houkaiblog.appspot.com的流量,其他调用的是自己hou-kai.appspot的流量。
使用绝对路径要注意的地方:在本地测试的时候,如果修改那个css或js的调用文件 一定要在html文件中将该文件的路径改成相对路径才能看到效果,上传前在改回绝对路径!虽然麻烦,但修改调用文件几率还是很小的!
本文转载来自:http://www.houkai.com/2009/09/18/micolog-optimization.html