我试图得到如何创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