¿Cómo se gestionan múltiples configuraciones de Apache similares?

¿Cómo se gestionan múltiples configuraciones de Apache similares?

En este momento estoy usando Mercurial para sincronizar configuraciones de Apache similares entre los servidores de producción y desarrollo. Una cola de parches además agrega los cambios y cosas adicionales necesarias para el servidor de desarrollo.

El plan funciona pero podría ser mejor. Siempre tengo conflictos de fusión cuando vuelvo a aplicar la cola de parches después de realizar cambios en las configuraciones de implementación. Siento que siempre estoy haciendo cambios idénticos en los archivos de configuración http:// y https:// separados.

¿Cómo debo factorizar los bits idénticos entre mis configuraciones de Apache :80 y :443 y agregar de manera más limpia los "bits adicionales" a la configuración de desarrollo?

Respuesta1

Es posible que desee considerar el uso deIncluirCaracterística del sistema de configuración de Apache. Luego separe los elementos de su configuración que son específicos de una máquina individual en un_local.confeso debería simplificar la fusión

Respuesta2

Apache tiene una opción para habilitar selectivamente ciertas configuraciones. Esto le permite utilizar el mismo archivo de configuración para desarrollo y producción. Inicie Apache con -DDEVELOPMENT o -DPROD y podrá usar etiquetas para la configuración específica del servidor de desarrollo. De esta manera no tendrás ningún conflicto de fusión (a menos que cambies ambos archivos de configuración dev/prod antes de fusionar, por supuesto)

Respuesta3

Esto puede ser de la vieja escuela, pero mis configuraciones de Apache de etapa y producción eran idénticas, excepto que algunos de los parámetros dentro de cada una eran diferentes (es decir, dirección IP). Utilicé un contenedor de Perl alrededor de un script de inicio para "rellenar los espacios en blanco" de forma metódica. Las 'plantillas' de configuración base reales eran de hecho idénticas.

Esto aseguró que el Apache de etapa fuera funcionalmente idéntico al Apache de producción.

Compartir esta configuración de producción con el desarrollo les permitió realizar pruebas tan cerca de la producción como quisieran (y querían hacerlo, porque no entrarían en producción a menos que sus cosas "funcionaran" en el escenario. Brindamos ayuda ocasionalmente (para las reglas mod_rewrite, por ejemplo). y dejó el resto en manos del desarrollador.

La diferencia entre esta configuración particular y otros lugares en los que he trabajado es:

Se animó al personal de desarrollo a incursionar en áreas no directamente relacionadas con los programas en los que trabajaban... es decir: pueden trabajar en aplicaciones back-end (por lo tanto, no necesitarían saber mucho sobre Apache) pero configuraron sus propios servidores Apache ( de hecho construyeron sus propios escritorios, pero esa es una línea cruzada (IMnsHO).

En realidad, las operaciones impulsaron gran parte de la infraestructura, en lugar de simplemente ejecutarla.

información relacionada