在这个夏日的夜里,终于把宝宝哄睡了。挠着一身的蚊子包,想想应该写写这个了,否则时间太长,很多东西就忘掉了。
去年到今年,因为一个项目的原因,收集阅读了一些关于构建大容量Drupal站点的资料,并且做了一些实践性的尝试。算作备忘,写下来,省得自己以后忘了;另外也给群里的朋友们做个参考。
因为时间很久了,有些细节记不清了。我争取尽量的准确。这个备忘只是提供一个思路,抛砖引玉,希望引起观者的思考和实践,进而完善出一个基于实践的高可用的Drupal解决方案。
对于不了解Drupal的,简单介绍一下背景。Drupal是一个开始于2001年的开源CMS项目,使用php开发。时至今日,是目前世界上最优秀的开源CMS/CMF之一。因为多数第一手资料多数都是英文的,以及国内用户的使用习惯问题,在国内仍然处在传播阶段。很多知名站点是使用Drupal开发的,比如ubuntu官方网站,白宫的官方网站,以及一些传媒集团的官方网站。
使用Drupal开发一个站点之后,有时候会遇到的情况就是,如何是站点可以承受更大的访问量。这包含两个层次的含义,一个而是如何用现有的硬件,支撑更大的访问量;另一个是,如果单机最大访问量到了上限,如何扩展使之能够承受更大访问量。期望在读完这个文章之后,读者可以找到方向,至少是探索的方向。
讨论的方案,虽然是基于Drupal的,实际上是可以套用很多其他替代方案的。比如Drupal部分用tomcat+grails替代,比如Drupal部分用RoR替代,等等。为了避免问题的泛泛化,这里就以Drupal为实践。感兴趣的读者,可以举一反三的应用。
后续提到的实践部分,我都是在CentOS5.3和5.4上做的。我尽量在全新安装的CentOS5.4上实践,这样很多操作的步骤就可以被需要的读者“拿过来就用”了。我所谓“全新安装的CentOS5.4”,是指64位的CentOS5.4,安装选择Server Installation。后续需要的软件,都通过yum来安装,少部分也许需要编译安装。后续提到的操作,我尽量都保证基于这样的硬件平台:
基于kvm的虚拟机,运行在AMD 64位处理器上。虚拟机有1颗处理器,512M内存,虚拟机使用10G磁盘,基础软件安装一般小于2G空间。