针对不同环境管理 httpd.conf 的推荐做法

针对不同环境管理 httpd.conf 的推荐做法

我们有几种不同的环境(开发人员桌面、集成、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 这样的配置管理工具来自动化所有这些操作可以获得加分。

相关内容