启用MediaWiki的File Cache功能,生成静态HTML页面
出自James Qi
|
|
| 所在位置:首页 > 日志 > 启用MediaWiki的File Cache功能,生成静态HTML页面 |
--James Qi 2008年10月21日 (二) 15:40 (CST)
因为持续受到服务器负载过高的困扰,这几天干脆把内容更新的事情都交给同事去做,我来专心看看如何解决服务器负载的问题,除了自己研究以外,也找公司外面的朋友小许、以前的同事小钱进行了很多咨询。
先是对MediaWiki配置做了一些调整,例如将全文检索关掉、页面计数器关掉,看到还是负载高后又把$wgJobRunRate进一步降低到0.01,好像还有一些效果。
对CDN也进行了一些了解,但CDN基本也都是用Squid,主要解决全国各地访问的问题,我们目前Apache负载高的问题可能还解决不了,这个想法也作罢。
统计了一下,目前Squid的缓存命中率也在70%左右,还正常,但就是剩下的30%就让Apache服务器受不了,今天对Squid的配置文件又进行了一些参数调整,加大了很多参数,希望能将命中率提高到80%甚至90%,这样对后端Apache会好一些。想尝试用Squid的反向代理来做负载均衡,但没有测试成功。
至于小许、小钱怀疑的MySQL问题,暂时也顾不过来。
小钱以前在搜狐工作过,说他们的社区BBS等动态页面也都尽量进行了静态化,否则很难承受绝大的访问量。我们以前只是用了Apache的ReWrite做了一个URL模拟静态化,当然是不能减少负载的。我记得maintenance工具中有一个DumpHTML,可以批量生成整个网站的所有HTML静态页面,但似乎都是分布在多个目录中的.html文件,还不知道如何访问,以为采用后会导致URL改变,就没有继续试用。
今天先拿个已经暂停的网站 http://english.18dao.org/ 来做实验,按照MediaWiki官方网站中的File Cache说明,很快就设置好了文件缓存功能,发现URL没有任何改变,只是从HTML源文件中可以看到是cache的结果,这还是不错的。虽然官方网站的说明中指出File Cache还有一些更新机制方面的欠缺,不如Squid好,但我为了能尽快让后端的Apache负载降下来,就将邮政编码查询、电话区号查询两个内容很固定的网站的文件缓存功能打开了,相当于有File Cache和Squid两级缓存。
人工搜索网站暂时还没有这样尝试,因为用到太多扩展、动态的模板了,File Cache支持不太好,还是就用Squid。
小钱问了我们的服务器配置情况后,建议升级服务器,还要找程序员优化MediaWiki的代码。这些工作以后都是有必要的,逐步来创造条件解决吧。
附在LocalSettings.php中的设置:
$wgUseFileCache = true; /* default: false */ $wgFileCacheDirectory = "$IP/cache"; $wgShowIPinHeader = false;
设置定期更新Cache内容:
$wgCacheEpoch = date( "Ym01000000" ); #每月一日零点 $wgCacheEpoch = date( "Ymd000000" ); #每天零点 $wgCacheEpoch = date( "YmdH0000" ); #每小时整点
增加一个“刷新”选单(注意:需要设置MediaWiki:Refresh为“刷新”二字):
# add page-refresh tab
#
$wgHooks['SkinTemplateContentActions'][] = 'wfContentRefreshHook';
function wfContentRefreshHook( &$content_actions ) {
global $wgRequest, $wgRequest, $wgTitle;
$action = $wgRequest->getText( 'action' );
if ( $wgTitle->getNamespace() != NS_SPECIAL ) {
$content_actions['purge'] = array(
'class' => false,
'text' => wfMsg( 'refresh' ),
'href' => $wgTitle->getLocalUrl( 'action=purge' )
);
}
return true;
}
| 标签:MediaWiki, File Cache, HTML |
相关内容:
|
别名:MediaWiki的文件缓存功能、MediaWiki也可以生产静态页面、让MediaWiki生产HTML页面降低服务器负载。
| 用户留言: |
|
留言: --117.85.59.107 2008年12月30日 (三) 20:28 (CST) James 老师,您好 我看了您这篇教程,在自己的wiki上设置后,并未出现理想效果,顺便说下,我的.htaccess文件里也设置了生成伪静态: RewriteEngine On RewriteRule ^[^:]*\. - [L] RewriteRule ^[^:]*\/ - [L] RewriteRule ^/*$ /index.php?title=首页 [L,QSA] RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]尽管再加上您教程上的设置,但我的wiki仍未实现静态化。可是,很奇怪,如果我输 http://www.wxseo.com/首页/却能直接访问,此表示静态化已经完成。 但通过浏览器浏览仍然出现了一大串的字符,并未实现静态化,请问是什么问题?怎么可以解决? 我的wiki小站无锡百科望能指明解决方法。 留言: --58.214.168.215 2009年1月1日 (五) 21:40 (CST) 问题已解决
|
| 新增留言 |
4个分类: 日志 | MediaWiki | File Cache | HTML


