集群 Apache 设置中的共享文档根目录

集群 Apache 设置中的共享文档根目录

我正在设置一个由三台 Apache 服务器组成的集群,但我找不到太多关于如何最好地处理共享文档根目录的信息。目前,我计划构建一个专用文件服务器并通过 NFS 共享网站源。然后每台 Apache 机器都会挂载该 NFS 目录并从那里提供 PHP 文件。

我能想到的 NFS 的唯一替代方案是在每台服务器之间 rsync 源文件,但这看起来很混乱。

我的问题是,处理多个负载平衡的 Apache 服务器之间共享网站源代码的最佳方法是什么?

谢谢!

答案1

我实际上会推荐一些与你正在考虑的 rsync 类似的产品。对于一组相当静态的文件(如网站 docroot),此设置效果很好。进入分布式文件系统(OCFS2、GFS2)或 NFS 将增加额外的潜在故障点,带来潜在的性能问题,并显著增加设置的复杂性。最重要的是,大多数分布式文件系统设置都需要(昂贵的)SAN 硬件来共享磁盘(除非你使用类似灾难恢复数据库,我不确定它是否适合您的设置)。

我会设置一台服务器(它可以具有最少的资源,甚至可以是虚拟的)作为您的生产暂存服务器。将其配置为生产 Web 服务器,并在那里进行任何生产更改。然后,整理一组脚本(可能/可能使用 rsync 或类似程序),将您的 Web 根目录从暂存服务器推送到您的所有生产服务器。

另一种可能的设置是将您的 webroot 存储在您最喜欢的源代码修订控制系统中(无论如何您都应该这样做),并让三个生产服务器直接从存储库中提取文档根目录。

答案2

听起来你可能想要一个分布式文件系统

http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems

我有一个网格项目,我们必须构建一个计算集群,并决定使用 OpenAFS,这是我唯一知道的。从学习的角度来看,这有点糟糕,因为在我看来这并不容易。

但是我发布的链接列出了这些选项。有些支持复制和条带化(容错和并行。只需研究这些选项,然后选择一个你喜欢的选项)。

相关内容