ferramentas para refatorar arquivos de configuração do Apache

1

Estou enfrentando uma limpeza de uma configuração do Apache excessivamente grande. Acumulou quase uma década. Eu estou começando com a refatoração, corrigindo tabulação / indentação, quebrando seções em includes.

Você tem algum script / técnica / arquivo de configuração do bbedit útil ou conselhos gerais sobre como manter uma configuração organizada do apache? Existem livros / sites que se concentram em organizar adequadamente as configurações do Apache?

    
por deadprogrammer 11.01.2010 / 18:15

1 resposta

2

Uma vez eu tive que lidar com esse tipo de arquivo, cada vez que a empresa comprava outra empresa, eles adicionavam suas marcas no arquivo 1 BIG httpd.conf, diferentes marcas tinham que ser testadas em diferentes ambientes de teste. Nossa abordagem foi:

  1. Comece com um novo arquivo vazio e inclua apenas os itens que precisam ser incluídos. Mantê-lo em um sistema de controle de versão, se você tiver um.
  2. Use a diretiva include. Isso permite ativar a desativação de marcas inteiras.
  3. Use um sistema de modelos para criar hosts virtuais, como abaixo, com mais de uma dúzia de marcas. correndo em 5 ou 6 ambientes
  4. Use uma planilha criada pela empresa para criar os arquivos de hosts virtuais. Isso funcionou bem com o módulo do analisador do perl excel. No final, os analistas de negócios poderiam apenas alterar a planilha e obter um novo conjunto de hosts virtuais para inclusão e os administradores ficariam satisfeitos porque poderiam desativar / ativar o ambiente comentando / ativando uma única linha no httpd.conf.
  5. grep de todas as linhas de comentário e linhas em branco. Parece menos assustador quando você reduz um arquivo de 5000 linhas para 2000, removendo todo o espaçamento e comentários.
# Begin Virtual Host: [% brand_description %]
Listen [% dyn_ip %]:[% dyn_port %]
<VirtualHost [% dyn_ip %]:[% dyn_port %]>
    ServerAdmin [% server_admin %]
    ServerName [% dyn_ip %]:[% dyn_port %]
    DocumentRoot "[% document_root %]"

    <Directory />
        DirectoryIndex index.html
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>

    ErrorLog  [% error_log %]
    CustomLog [% custom_log %] combined

    JKMount [% jk_mount_point  %] [% jk_balancer_name %]

    ErrorDocument 502 /holding/50x_disruption-page.html
    ErrorDocument 503 /holding/50x_disruption-page.html
    RedirectPermanent [% payment_page %]  [% brand_payment_url %]
 </VirtualHost>
# End Virtual Host: [% brand_description %]
    
por 11.01.2010 / 19:52