如何管理多个类似的 Apache 配置?

如何管理多个类似的 Apache 配置?

目前,我正在使用 Mercurial 在生产服务器和开发服务器之间同步类似的 Apache 配置。其上的补丁队列添加了开发服务器所需的更改和额外内容。

该方案有效,但可以做得更好。当我从部署配置中提取更改后重新应用补丁队列时,我总是遇到合并冲突。我感觉我总是对单独的 http:// 和 https:// 配置文件进行相同的更改。

我应该如何找出 :80 和 :443 Apache 配置之间的相同位,并更干净地将“额外位”添加到开发配置中?

答案1

您可能需要考虑使用包括Apache 配置系统的功能。然后将特定于单个机器的配置元素分离为_本地.conf这应该会使合并更简单

答案2

Apache 有一个选项可以选择性地启用某些配置。这允许您使用相同的配置文件进行开发和生产。使用 -DDEVELOPMENT 或 -DPROD 启动 apache,并且您可以使用特定于开发服务器的配置标签。这样您就不会遇到任何合并冲突(当然,除非您在合并之前更改了开发/生产配置文件)

答案3

这可能是老套的做法,但我的阶段和生产 Apache 配置是相同的,只是每个配置中的一些参数不同(例如:IP 地址)。我使用 perl 包装器包装启动脚本,以有条不紊的方式“填补空白”。实际的基本配置“模板”确实相同。

这确保了阶段 apache 在功能上与生产 apache 相同。

与开发共享此生产配置使他们能够按照他们想要的方式进行接近生产的测试(他们也想这样做,因为除非他们的产品在阶段“起作用”,否则他们不会投入生产)。我们偶尔提供帮助(例如针对 mod_rewrite 规则),其余的交给开发人员。

这个特定的设置与我工作过的其他地方的区别在于:

鼓励开发人员涉足与他们所从事的程序无直接关系的领域...例如:他们可以从事后端应用程序工作(因此不需要了解太多有关 apache 的知识),但他们配置了自己的 apache 服务器(实际上是构建了自己的桌面,但这是越界了,IMnsHO)。

运营实际上推动了大量基础设施的发展,而不仅仅是运行它。

相关内容