¿Cuál es la mejor opción para compartir directivas de configuración entre servidores Apache2? Esto es necesario para emplear un equilibrio de carga estable. Las directivas más importantes son las que definen los hosts virtuales.
Cualquier tipo de ayuda es muy apreciada.
Respuesta1
Definimos un host como el "maestro", además (como en la mayoría de las distribuciones actuales) la configuración del host virtual se guarda en una carpeta /etc/apache2/vhost.d/ y se le asigna un archivo por host virtual.
p.ej
www.example.com.conf
customers.example.com.conf
suppliers.example.com.conf
... and so on..
Luego, un rsync cron'd que copia desde el "maestro" a los otros servidores.
Respuesta2
Hay varias formas de solucionar esto:
- coloque la configuración en el almacenamiento centralizado, por ejemplo NFS o CIFS.
- use un sistema de versiones (git, svn, etc.) para almacenar las configuraciones y verificarlas en los servidores web
- sincronizar la configuración de un servidor a otro usando rsync o scp
Podría considerar combinar la segunda opción con alguna herramienta de aprovisionamiento como Puppet o CFengine para que Apache se recargue cuando cambie la configuración central.
Respuesta3
Utilizo una configuración unificada para nuestros servidores de desarrollo, preparación y producción. La mayor parte de la configuración es la misma para todos ellos. Cuando son diferentes, pongo las diferencias en definiciones de host virtual o en <IfDefine>
secciones, por ejemplo:
<IfDefine DEVELOPMENT>
...
</IfDefine>
Cada servidor comienza con un modificador de línea de comandos que indica qué servidor es. Por ejemplo, en el servidor de desarrollo puse
export APACHE_ARGUMENTS="-DDEVELOPMENT"
en /etc/apache2/envvars (eso es para Debian; para RedHat lo pondrías OPTIONS='-DDEVELOPMENT'
en /etc/sysconfig/httpd). Entonces, además de sus hosts virtuales, el servidor de desarrollo tiene toda la configuración dentro de las <IfDefine DEVELOPMENT>
secciones.
Cuando la configuración cambia, envío los cambios al control de versiones, generalmente en desarrollo, y los envío a los otros hosts.