Назад | Перейти на главную страницу

Как вы управляете несколькими похожими конфигурациями Apache?

Прямо сейчас я использую Mercurial для синхронизации аналогичных конфигураций Apache между производственным сервером и сервером разработки. Очередь исправлений поверх этого добавляет изменения и дополнительные вещи, необходимые для сервера разработки.

Схема работает, но можно было и лучше. Я всегда получаю конфликты слияния, когда повторно применяю очередь исправлений после получения изменений из конфигураций развертывания. Мне кажется, что я всегда вношу одинаковые изменения в отдельные файлы конфигурации http: // и https: //.

Как мне выделить идентичные биты между моими: 80 и: 443 конфигурациями Apache и более аккуратно добавить "дополнительные биты" в конфигурацию разработки?

Возможно, вы захотите использовать Включают особенность системы конфигурации Apache. Затем выделите элементы конфигурации, относящиеся к конкретной машине, в _local.conf это должно упростить слияние

У Apache есть возможность выборочно включать определенные конфигурации. Это позволяет использовать один и тот же файл конфигурации для разработки и производства. Запустите apache с -DDEVELOPMENT или -DPROD, и вы можете использовать теги для конфигурации, специфичной для сервера разработки. Таким образом, у вас не будет конфликтов слияния (если, конечно, вы не измените оба файла конфигурации dev / prod перед слиянием)

Это может быть старая школа, но мои этапы и производственные конфигурации apache были идентичны, за исключением того, что некоторые параметры в каждом из них были разными (например: IP-адрес). Я использовал оболочку perl вокруг стартового скрипта, чтобы методично «заполнить пробелы». Фактические «шаблоны» базовой конфигурации действительно были идентичны.

Это гарантировало, что apache стадии функционально идентичен производственному apache.

Совместное использование этой производственной конфигурации с разработчиками позволило им тестировать настолько близко к производственной среде, насколько они хотели (и они хотели, потому что они не попали бы в производство, если их материал не «работал» на стадии. Мы предоставляли помощь иногда (например, для правил mod_rewrite) а остальное оставил на усмотрение разработчика.

Разница между этой конкретной настройкой и другими местами, где я работал:

Персоналу разработчиков было предложено заняться областями, не связанными напрямую с программами, над которыми они работали ... то есть: они могут работать с внутренними приложениями (таким образом, им не нужно много знать об apache), но они настроили свои собственные серверы apache ( по сути построил свои десктопы, но вот ИМнШО черта переступила).

операции фактически управляли большей частью инфраструктуры, а не просто ее запуском.