¿Cómo compartir la configuración del host virtual Apache2 entre dos servidores Linux?

¿Cómo compartir la configuración del host virtual Apache2 entre dos servidores Linux?

¿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:

  1. coloque la configuración en el almacenamiento centralizado, por ejemplo NFS o CIFS.
  2. use un sistema de versiones (git, svn, etc.) para almacenar las configuraciones y verificarlas en los servidores web
  3. 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.

información relacionada