针对不同环境pipe理httpd.conf的build议措施

我们有几个不同的环境(开发人员dekstop,集成,QA,产品)应该有相同的httpd.conf文件略有不同的变种。 例如,httpd.conf文件将httpdconfiguration为反向代理,并将某些URL代理到Jetty,但Jetty实例的主机名在每个环境中都不相同。

是否有推荐的做法来pipe理这些差异? 我查看了httpd.conf文件的apache文档,并没有看到任何需要的东西。

将独特的部分拆分成单独的文件,然后在http.conf主文件中使用Include指令来包含其他的configuration文件。 你可以例如将这些包含在IfDefine部分中,然后使用-D命令行启动选项来定义variables来打开或closuresconfiguration的不同部分:

 <IfDefine DEVELOPER> Include developer.conf </IfDefine> 

接着:

 apachectl start -D DEVELOPER 

使用包含的conf文件让我感觉更干净,但是当然你也可以把所有的configuration放在ifdefs里的一个文件中。

当然,使用像cfengine或puppet这样的configurationpipe理工具来自动执行所有这些工作的奖励点。