Apache 在多台服务器上使用一个配置

Gla*_*ost 4 multiple-instances apache-2.2

我想复制我的虚拟机并将其放在负载平衡器后面。

Apache1  Apache2 ....ApacheN
   |        |           |
-------------------------
        LoadBalancer
Run Code Online (Sandbox Code Playgroud)

我只想为虚拟主机使用一个配置文件(实际上是一个包含在每个 httpd.conf 中的 conf 文件目录)、一个日志文件和一个用于所有实例的公共 DocumentRoot 目录。这可能吗,只是在虚拟机之间共享一些目录并相应地配置每个 Apache?

或者文件打开和写入会有一些冲突?

是否有更好的方法来维护具有相同配置的所有机器?

我能想到的另一件事是,它是一个复制主配置并重新启动所有 Apache 实例的脚本。还有一些脚本来合并所有日志......

欢迎任何建议。

更新:我认为在我的情况下性能不是问题,但是当我开始注意到日志损坏时,我停止从两个实例写入同一个日志文件。

[04/Oct/2014:17:10:34 +0200] "GET /index.html HTTP/1.0" 200 15082 22633
[04/Oct/2014:17:10:36 +0200] "GET /index.html HTTP/1.0" 200 15082 13[04/Oct/2014:17:10:38 +0200] "GET /index.html HTTP/1.0"[04/Oct/[04/Oct/2014:17:10:40 +0200] "GET /index.[04/Oct/2014:17:09:42[04/Oct/2014:17:10:42 +0200][04/Oct/2014:17:09:44 +0200] "GET /index.html HTTP/1.0" 200 15082  
Run Code Online (Sandbox Code Playgroud)

fak*_*ker 11

是否有更好的方法来维护具有相同配置的所有机器?

是的,配置管理系统(Puppet、Chef 等)是处理这个问题的正确方法。
他们可以自动部署更新的配置文件并在之后重新启动服务。
日志应通过 (r)syslog 发送到中央日志服务器。

至于 DocumentRoot 的内容:这取决于里面的内容。
如果它是静态代码,那么最好将它打包并通过标准操作系统工具(yum、apt-get 等)进行部署。
它还可以更轻松地缓慢推出新版本。

文件共享当然是可能的,但这可能会导致单点故障。
当您添加更多服务器时,在放置新配置后检查哪台机器已经重新启动了服务会很痛苦。