我在 Stack Overflow 上问了这个问题,然后我认为 serverfault 更合适,如果有人偶然发现这两个问题,我深表歉意。
因此,我目前正在将我的 Web 平台从单机重建为机器集群,我将使用 Apache 负载平衡来实现这一点。但在继续之前,我有两个问题需要得到很好的回答。我在 SF 上搜索过,但没找到任何好东西。
我的设置是一台运行 Apache 负载平衡服务器(即带有 mod_proxy 的 Apache)的 Debian 计算机,然后是任意数量的“从属”计算机,它们是平衡成员。所有这些都是 VMWare 计算机内的 VPS,因此根据需要设置新的从属计算机将很简单。
日志文件 第一个问题是日志文件。为了排除平台故障,我有时需要分析来自 Apache 的日志文件,包括访问日志和错误日志。当负载均匀分布时(即我不知道我是否会使用粘性平衡,任何主机可能都可以随时处理任何请求),每个从属 Apache 实例的日志文件也是如此。有没有办法整合这些居住,这意味着我的实时日志分析器可以看到所有主机的日志文件?我当然明白,当文件位于多台主机上时,这样做会很困难,那么有没有办法确保所有日志文件都保存在一台服务器上?
我自己正在考虑两件事,但我非常感谢您的意见。
系统日志 第一个是 syslogd,它可以让多个主机向一个日志主机写入数据。问题是,在我当前的设置中,apache 中的每个虚拟主机都有自己的日志文件。不过,这个问题可能可以通过某种方式解决。我主要使用它来排除故障,而不是为每个主机保留单独的日志(尽管如果两个目标都能实现,那肯定是一个好处)。
NFS 我的下一个想法是关于 NFS,即在 LAN 上有一个 NFS 共享,每个从属设备都可以写入同一个日志文件。我将继续并假设这会很困难,因为从属设备 1 将打开日志文件,然后从属设备 2 将无法写入它。
正如我所说的,我非常感谢您的意见,因为我觉得我不知道如何解决这个问题。
配置文件 这完全是另一回事。每个从服务器都会像一台服务器一样响应每个请求。这就是整个想法。但是,如果要更改 apache 配置文件、添加虚拟主机、设置其他参数怎么办?如果我有 10 个或 50 个从服务器怎么办?有没有办法确保所有这些从服务器始终保持同步?我已经使用 NFS 导出来确保它们都具有相同的文件,但我是否应该对配置文件使用相同的方法?或者我应该将它们作为某种形式的存储库,然后使用 rsync 将它们复制到从服务器?一个问题是,我已经在我的 Web 平台中构建了一个编辑这些配置文件(即具有虚拟主机的文件)的界面,并且由于该操作将在其中一台从服务器上进行,因此该文件的最新副本可能位于一台从服务器上。
我意识到这是一篇冗长且难以理解的文章,对此我深表歉意。我只是想确保我的问题的所有参数都得到了表达。
我希望有人能帮助我,就像你以前帮助过我一样!提前谢谢你!
答案1
- 看一眼logresolvemerge。
- 您可以
rsync
与结合incrond
。