Como compartilhar a configuração do host virtual Apache2 entre dois servidores Linux?

Como compartilhar a configuração do host virtual Apache2 entre dois servidores Linux?

Qual é a melhor opção para compartilhar diretivas de configuração entre servidores Apache2. Isso é necessário para empregar balanceamento de carga estável. As diretivas mais importantes são aquelas que definem os hosts virtuais.

Qualquer tipo de ajuda é muito apreciada.

Responder1

Definimos um host como o "mestre", também (como na maioria das distribuições atualmente) a configuração do host virtual é mantida em uma pasta /etc/apache2/vhost.d/ e alocada em um arquivo por host virtual.

por exemplo

www.example.com.conf
customers.example.com.conf
suppliers.example.com.conf
... and so on..

Em seguida, um rsync cronizado que copia do "mestre" para os outros servidores.

Responder2

Existem várias maneiras de resolver isso:

  1. coloque a configuração no armazenamento centralizado, por exemplo NFS ou CIFS.
  2. use um sistema de versionamento (git, svn, etc) para armazenar as configurações e verificá-las nos servidores web
  3. sincronizar configuração de um servidor para outro usando rsync ou scp

Você poderia considerar combinar a segunda opção com alguma ferramenta de provisionamento como Puppet ou CFengine para que o Apache seja recarregado quando a configuração central mudar.

Responder3

Eu uso uma configuração unificada para nossos servidores de desenvolvimento, teste e produção. A maior parte da configuração é a mesma para todos eles. Onde são diferentes, coloco as diferenças nas definições de host virtual ou em <IfDefine>seções, por exemplo:

<IfDefine DEVELOPMENT>
...
</IfDefine>

Cada servidor inicia com uma opção de linha de comando que informa qual servidor ele é. Por exemplo, no servidor de desenvolvimento eu coloquei

export APACHE_ARGUMENTS="-DDEVELOPMENT"

em /etc/apache2/envvars (isso é para Debian - para RedHat você colocaria OPTIONS='-DDEVELOPMENT'em /etc/sysconfig/httpd). Portanto, além de seus hosts virtuais, o servidor de desenvolvimento possui toda a configuração dentro das <IfDefine DEVELOPMENT>seções.

Quando a configuração muda, eu envio as alterações para o controle de versão, geralmente em desenvolvimento, e as envio para os outros hosts.

informação relacionada