1

我正在扩展托管环境以开始使用运行 Apache 的负载平衡 Web 服务器。到目前为止,我一直在手动管理 VirtualHost,但现在我需要一种将 VirtualHost 复制到其他多个 Web 服务器的方法。我有一些想法,我想知道人们是否可以评论每个想法的优缺点以帮助我做出决定。

  1. 手动创建新的 VirtualHosts 并创建一个脚本来跨服务器同步 conf 文件。
  2. 我正在考虑使用 Puppet 来管理所有服务器上的包。我可以将 Puppet 文件放在源代码管理中,并使用它在每个服务器上创建 VirtualHosts。
  3. 创建一个 NFS 共享并将 apache VirtualHost 目录符号链接到那里。

欢迎提出意见、过去的经验和轻微的批评。

4

2 回答 2

2

就我个人而言,我会避免使用 NFS,因为它是另一个单点故障(如果 NFS 服务器出现故障怎么办?您将无法启动或可能对您的 Web 服务器执行任何操作)。

此外,rsync 似乎有点过头了,而 Puppet 也可能过头了,这取决于您拥有多少台服务器。

如果我是你,我只需将所有共享配置文件放在 git 或 hg(Mercurial)存储库中,并通过简单地拉取和更新源来进行同步。如果您需要它比 git & hg 更集中,请使用 Subversion(请注意,如果 Subversion 存储库服务器出现故障,您的每个 Web 服务器都将拥有自己的所有内容的本地副本,您可以从中重建它)。

于 2013-10-28T12:05:36.820 回答
1

我已成功使用NFS共享来共享 apache 配置。这主要用于读取模式,很少写入。你不会有任何性能问题。你我在服务启动顺序方面遇到的问题(确保 NFS 在 apache 之前启动)。NFS 也可用于共享 SSL 会话数据和一些应用程序共享目录(临时图像上传,甚至可能是源代码,如果应用程序维护类似操作码缓存 n php 并且不做愚蠢的事情)。

现在使用 puppet、salt-stack 等工具会更好,因为您可以在任何配置更改后管理服务重启/重新加载。

于 2013-10-28T11:47:32.620 回答