负载均衡的Drupal服务器:在服务器之间共享数据的好方法?

我试图得到如何创build一个负载平衡的Web服务器设置的概述。 设置实际的负载平衡器,并添加两个或更多的Web服务器似乎够公平。 但是,我不能决定什么是最好的文件设置。

Web服务器将运行一个CMS系统(在这个例子中是Drupal)。 用户上传的文件可能与内容有关,所有的networking服务器都应该可以访问这些文件。 现在,我只想拥有一个指定的文件服务器,并在每个Web服务器上安装一个文件目录,以便各种Web服务器可以访问这些“共享”文件。

但是,如果我们正在谈论4-5台服务器,这个解决scheme会是一个瓶颈吗? 我认为安装将通过SSH完成。

所有帮助高度赞赏!

更新(2013年1月15日)

我决定结合使用Csync2和Lsyncd。 然后,我设置了两台镜像服务器。 Lsyncd监听某些目录(及其子目录)中的更改,并调用Csync2,负责将文件同步到其他服务器。 如果您有兴趣了解更多信息,请参阅本教程 。

在我转移到CDN之前,我有一个大约20台服务器的networking农场。 我开始使用NFS,直到3年前我在linux内核中遇到一个bug,导致没有安装音量时出现问题,而且没有正确地进行故障恢复。

然后我创build了一个rsync脚本,可以将dir的每5分钟同步到每个映像服务器。 这不是理想的,但它的工作,我没有任何问题。

下一步我切换到lsyncd使用inotify来监视一个目录,当一个文件被改变时,它产生一个进程来同步该文件。 默认情况下是rsync。 这个解决scheme是坚实的,如果不是CDN的经济,我会继续这样做。

Lsyncd: http : //code.google.com/p/lsyncd/

希望有所帮助。

John和Cailin 关于扩展Drupal的五步教程对您非常有帮助。

前两步如下:

第1步: 将您的Web服务器与数据库服务器分开。

第2步: 设置冗余Web服务器和负载平衡。

底线:如果不先垂直缩放(将当前驻留在同一台服务器上的function分隔成不同的层),则不需要水平扩展(添加多个具有相同function的服务器)。

我已经使用glusterfs( http://www.gluster.org/ )在负载平衡的Web服务器之间共享文件。 我试图在服务器和glusterfs之间共享MySQL数据库文件,但没有成功 – 我build议按照第一张海报的build议将networking从数据库服务器中分离出来。

在服务器之间共享文件的其他解决scheme是光彩( http://wiki.lustre.org/index.php/Main_Page ),并根据负载平衡器设置,也可以使用lsyncd( http://code.google.com / p / lsyncd / )来同步服务器之间的文件。

您可以设置一个高可用性的NFS共享,并将其挂载到每个http服务器上以便为您的文件提供服务

请查找高可用性MySQL集群的教程: http : //www.howtoforge.com/loadbalanced_mysql_cluster_debian