У нас есть несколько разных сред (dekstop для разработчиков, интеграция, QA, prod), которые должны иметь несколько разные варианты одного и того же файла httpd.conf. Например, файл httpd.conf настраивает, что httpd должен действовать как обратный прокси и передавать определенные URL-адреса Jetty, но имя хоста экземпляра Jetty отличается в каждой среде.
Есть ли рекомендованная практика для управления такими различиями? Я просмотрел документацию по apache для файла httpd.conf и не нашел ничего, что делало бы то, что мне нужно.
Разделите уникальные разделы на отдельные файлы, затем используйте Include
директивы в главном http.conf для включения других файлов конфигурации. Вы можете, например, обернуть эти Includes в IfDefine
разделы, а затем используйте -D
опция запуска командной строки для определения переменных для включения или выключения различных разделов конфигурации:
<IfDefine DEVELOPER>
Include developer.conf
</IfDefine>
а потом:
apachectl start -D DEVELOPER
Мне кажется более чистым использовать включенные файлы conf, но, конечно, вы также можете поместить всю свою конфигурацию в один файл внутри ifdefs.
Бонусные баллы за автоматизацию всего этого с помощью инструмента управления конфигурацией, такого как cfengine или puppet, конечно.