Joomla/用PageCache缓存技巧加速你的网站

来自站长百科
跳转至: 导航、​ 搜索

Joomla | Joomla使用手册

本条目主要介绍用于Joomla!平台的一些缓存技巧。主要涉及两个组件:JRE Cache 和 PageCache 。

为什么要用缓存功能[ ]

在过去,静态网站是不需要缓存的。因为静态网站不涉及数据库的存取,只是对文件系统的访问。

如今动态网站成为主流。动态网站的优点是容易做到内容与外观分离,容易实现网页内容的交互性(Interactivity)。当访客在浏览器地址栏输入一个网址来访问动态网站的某个网页时,在服务器端这个指令实际上是“兵分两路”:一边从文件系统中提取框架样式,另一边从数据库中提取内容数据,最后组合成完整的页面,返回给给浏览器,就是访客所看到的样子。由于每次访客的页面请求都要产生一次数据库查询,因此加重了服务器的负担。实际上很多动态网站的内容并不是每个页面都“动态”,很多页面内容也是在一段时间之内保持相对不变。

对于这些段时间内没有变化的内容,就可以将完整页面做一个“快照”,然后作为临时文件保存在某个目录中,在短时间内,如果有访客请求同样的页面,服务器就无需向数据库发起查询,而是直接将刚才保存的“快照”拿出来给他看 —— 将原来的“兵分两路”变成了“兵合一处”。这就是缓存。这样做的好处就是加快了前台页面打开的速度。因此,服务器端实施缓存的一般方式是“文件系统”,将页面的“快照”版本保存在缓存目录中。

缓存对Joomla!网站有什么意义[ ]

Joomla! CMS 是一个动态内容管理系统。核心本身就带有多个组件,其中的 com_content 是管理文章的。而大多数网站都有或多或少的文章页面。不难想象,这些文章页面在发布之后,很多都不再修改。还有“联系”页面,除非你的联系方式变了,否则在 Joomla! 建站后谁会经常去修改“联系”页面?

同样的,“友情链接”组件的内容估计也不是频繁更新;“产品介绍”栏目的内容也不是频繁更新;“专家介绍”栏目、“会员博客”栏目等等,这些内容有可能更新,但不会很频繁。

也就是说,对于一个确定在 1 小时内不会变化的页面,我们完全可以将它“缓存”59分钟。而对于一个月都不会更新的“产品介绍”栏目,我们至少可以缓存 29天!这将给服务器减少多少负担,同时给网站的打开速度加强多少!

缓存方式简介[ ]

Joomla对于缓存的必要性[ ]

遗憾的是,Joomla!默认的缓存时间是不区分范围的,只是笼统的问你“缓存多久?”。如果你网站上某些页面1小时更新一次,某些页面1天更新一次,某些页面1个月更新一次,那么你只能选择最短的缓存时间。如果你选择了比较长的缓存时间,例如缓存 5 小时,那么更新较快的页面在有了新内容之后,前台仍然不会体现出来。

如果你的网站上还有一个更新特别频繁的区域,例如:论坛。那么很可能每 2 分钟就有一个新的帖子出现。如果将缓存时间设置为 1 分钟甚至更短,那就失去了缓存的意义。而对于你网站上另一些更新并不频繁的页面来说,不能拥有较长的缓存时间也很遗憾。

还有一个更复杂的情形就是:在很多网站上,文章系统带有“访客评论”功能。文章本身可能很久都不再更新,但是评论内容可能每天都有新的内容产生。这两者同时显示在同一个页面上,又该如何选择缓存的模式?因此,我们对于理想的缓存方式的期望是:能够区别对待网站上更新频率不同的区域。

缓存方式的选择[ ]

除了文件系统这种缓存方式,还有数据库的缓存方式。后者就是将网页快照存放在数据库,当服务器端接收到浏览器的请求,就直接从数据库中取出快照传输过去,无需再到文件夹里面提取样式框架。这两者哪一种效果好?这取决于具体的服务器环境。如果服务器上数据库比较繁忙,那么用文件系统做缓存当然效果好;反之,就应该选择数据库作为缓存位置。

近年来,随着内存芯片价格不断下降,过去昂贵的带 ECC 校验的服务器内存也便宜了许多。因此很多服务器都开始拥有 4GB 甚至更大内存。基于内存的缓存方式也逐渐兴起。无论“文件系统”还是“数据库”,其实都是存放在硬盘上的;而内存就不同了,大家都知道,内存的读取速度与硬盘不可同日而语!因此,如果有条件选择基于内存的缓存方式,那当然最好!

可是,正如你所看到的,Joomla! 只提供了“文件夹缓存”这么一种途径,也不能区别对待不同的内容区域。因此,其缓存机制实在太有限了!这就引出了我们今天要介绍的两个工具——JRE Cache 与 PageCache

JRE Cache与PageCache的简单介绍[ ]

Joomla pagecach 1.jpg

由于这些缓存增强组件需要凌驾Joomla! 自带的缓存机制,因此它们的安装过程都会自动修改核心文件代码,如果你将来不需要它们了,在卸载时又会自动还原核心文件。而且这两个组件都在后台参数中有“还原文件”的按钮,方便随时取消功能。


PageCache的使用[ ]

PageCache缓存组件的启用[ ]

PageCache的安装过程跟安装其它组件一样,安装结束后并未生效,需要到其后台的“设置”页面启用。后台控制面板如下图所示:

Joomla pagecach 1.gif

点击“设置”就能看到如下画面:

Joomla pagecach 1.png

第一项参数就是是否启用。如果你想享用 PageCache 的加速功能,当然需要勾选启用。第二项参数是缓存时间,单位是秒。你必须根据网站上更新较频繁的区域来设定这个数值,例如:留言本可能每天四、五次,文章系统好几天才更新,那么就可以设置缓存时间为 2小时 —— 7200 秒,填写 7200 即可;

请注意上图中“缓存方式”部分,Database 、Eaccelerator 和 File 三项是正常文字样式,表示当前可用,而 APC、MemCache 和那个没有需要向下滚动才能看到的 Xcache 以斜体字出现,表示当前不可用。设定好参数后,点击右上角的“保存”按钮即可生效。

在PageCache中除外对指定组件的缓存[ ]

PageCache 有一个很好的功能就是允许除外对指定组件的缓存。例如,它已经内置了一个参数,指定不要缓存 FireBoard 论坛组件,这样的话,所有论坛的内容都不会缓存,访客就能及时看到当前最新的帖子。

如果你的论坛不是 FireBoard 呢?那么,我们就必须手动添加这个除外规则了。从 PageCache 的控制面板上点击“模块”,可以看到其中有 no cache 模块,就是设定“不要缓存”的内容的。

Joomla pagecach 2.png

这里有两种“不缓存”设定方式,一个是 no_cache_database,一个是 no_cache_file,你随便选择一个都可以,只要记着设置完后要发布你所选择的模块。例如上图中,前者是发布状态,而后者是未发布状态。

参考来源[ ]

http://www.joomlagate.com/article/joomla-seo/make-a-faster-joomla-website-with-caching-tricks/

Joomla! SEO教程导航

Joomla安装

Joomla!的安装

Joomla! SEO教程

在Joomla!网站上嵌入使用Piwik流量统计分析系统 | 用Xenu's Link Sleuth查找Joomla网站的死链接 | 提升Joomla!网站Alexa排名的技巧 | 提升Joomla网站搜索排名技巧 | GetClicky介绍 | 设计Joomla模板时的SEO准则 | 用PageCache缓存技巧加速你的网站 | Joomla!建站常见的个设计错误 | 通过友情链接让搜索引擎尽快收录你的网站 | Joomla! SEO必须避免的失误 | Google分析模块

其他Joomla教程

用XAMPP快速搭建Joomla本地测试服务器 | 用Gmail的SMTP发送Joomla激活及通知邮件 | 深入认识Joomla CMS:扩展、菜单及模板 | Joomla 1.0教程 | Joomla高级教程 | Joomla 1.5教程