我们有几种不同的环境(开发人员桌面、集成、QA、产品),它们应该具有同一 httpd.conf 文件的略微不同的变体。例如,httpd.conf 文件配置 httpd 应充当反向代理并将某些 URL 代理到 Jetty,但 Jetty 实例的主机名在每个环境中都不同。
是否有建议的做法来管理这些差异?我查看了 httpd.conf 文件的 apache 文档,但没有找到任何可以满足我需求的内容。
答案1
将唯一部分拆分为单独的文件,然后使用Include
主 http.conf 中的指令来包含其他配置文件。例如,您可以将这些包含内容包装在IfDefine
部分中,然后使用-D
命令行启动选项来定义变量以打开或关闭配置的不同部分:
<IfDefine DEVELOPER>
Include developer.conf
</IfDefine>
进而:
apachectl start -D DEVELOPER
对我来说,使用包含的 conf 文件感觉更干净,但当然您也可以将所有配置放在 ifdefs 中的一个文件中。
当然,使用像 cfengine 或 puppet 这样的配置管理工具来自动化所有这些操作可以获得加分。