Como você gerencia múltiplas configurações similares do Apache?

3

Neste momento, estou usando o Mercurial para sincronizar configurações semelhantes do Apache entre os servidores de produção e desenvolvimento. Uma fila de patches sobre ela acrescenta as mudanças e coisas extras necessárias para o servidor de desenvolvimento.

O esquema funciona, mas poderia ser melhor. Eu sempre fico com conflitos de mesclagem quando reaplico a fila de patches depois de extrair as alterações das configurações de implantação. Eu sinto que estou sempre fazendo alterações idênticas nos arquivos de configuração http: // e https: // separados.

Como devo fatorar os bits idênticos entre as configurações do meu: 80 e: 443 do Apache e mais claramente adicionar os "bits extras" à configuração de desenvolvimento?

    
por joeforker 14.07.2009 / 15:10

3 respostas

5

Você pode considerar o uso do recurso Incluir do sistema de configuração do Apache. Em seguida, separe os elementos da sua configuração que são específicos de uma máquina individual em um _local.conf que deve tornar a mesclagem mais simples

    
por 14.07.2009 / 15:25
3

O Apache tem uma opção para ativar seletivamente certas configurações. Isso permite usar o mesmo arquivo de configuração para desenvolvimento e produção. Inicie o apache com -DDEVELOPMENT ou -DPROD e você poderá usar tags para configuração específica do servidor dev. Dessa forma, você não obterá conflitos de mesclagem (a menos que você altere os dois arquivos de configuração dev / prod antes da mesclagem, é claro)

    
por 14.07.2009 / 16:08
2

Isso pode ser da velha escola, mas minhas configurações de estágio e de produção do apache eram idênticas, exceto que alguns dos parâmetros dentro de cada um eram diferentes (isto é: endereço IP). Eu usei um wrapper perl em torno de um script de início para "preencher os espaços em branco" de uma maneira metódica. Os 'templates' reais de configuração de base eram de fato idênticos.

Isso garantiu que o estágio apache fosse funcionalmente idêntico ao apache de produção.

O compartilhamento dessa configuração de produção com o desenvolvimento permitiu que eles testassem a produção da maneira que desejavam (e eles queriam, porque não entrariam em produção a menos que o material funcionasse no palco. Fornecemos ajuda ocasionalmente (para regras mod_rewrite) por exemplo) e deixou o resto para o desenvolvedor.

Diferença entre essa configuração específica e outros lugares em que trabalhei são:

A equipe de desenvolvimento foi encorajada a se envolver em áreas não diretamente relacionadas aos programas em que trabalhavam, ou seja, elas podem trabalhar em aplicações de back-end (assim não precisariam saber muito sobre o apache), mas elas configuravam suas próprias servidores apache (na verdade construíram seus próprios desktops, mas isso é uma linha cruzada IMnsHO).

As operações de

direcionaram muito da infraestrutura, em vez de apenas executá-la.

    
por 14.07.2009 / 16:21