Layout básico do arquivo do Adobe Managed Services (AMS)

Saiba mais sobre o conjunto de arquivos de configuração padrão do AMS e a ideia por trás desse padrão de configuração no Adobe Experience Manager.

Descrição description

Ambiente

Adobe Experience Manager (AEM)

Problema/Sintomas

Este documento explica sobre o conjunto de arquivos de configuração padrão do AMS e a ideia por trás desse padrão de configuração.

Resolução resolution

Estrutura de Pasta Padrão do Enterprise Linux

No AMS, a instalação básica usa o Enterprise Linux como o sistema operacional básico. Ao instalar o Apache Webserver, ele tem um arquivo de instalação padrão definido. Estes são os arquivos padrão que são instalados por meio da instalação dos RPMs básicos fornecidos pelo repositório yum.

/etc/httpd/
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── autoindex.conf
│   ├── README
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   └── 01-cgi.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd

Ao seguir e honrar o design/a estrutura de instalação, você obtém os seguintes benefícios:

  • Mais fácil oferecer suporte a um layout previsível
  • Familiarizado automaticamente com qualquer pessoa que tenha trabalhado em instalações HTTPD do Enterprise Linux no passado
  • Permite ciclos de patch totalmente compatíveis com o sistema operacional sem conflitos ou ajustes manuais
  • Evita violações do SELinux de contextos de arquivo rotulados incorretamente

Observação:

As imagens dos servidores Adobe Managed Services normalmente têm pequenas unidades raiz do sistema operacional. Os dados são colocados em um volume separado, que normalmente é montado em /mnt.

Então, o volume é usado, em vez dos padrões dos seguintes diretórios padrão:

RaizDocumento

  • Padrão: /var/www/html
  • AMS: /mnt/var/www/html

Diretório de Log

  • Padrão: /var/log/httpd
  • AMS: /mnt/var/log/httpd

Lembre-se de que os diretórios antigos e novos são mapeados de volta ao ponto de montagem original para eliminar a confusão. Usar um volume separado não é vital, mas é notável.

Complementos do AMS

O AMS complementa a instalação básica do servidor Web Apache.

Raízes de Documento

Raízes padrão do documento AMS:

  • Autor: /mnt/var/www/author/
  • Publish: /mnt/var/www/html/
  • Catch-All e Manutenção de Verificação de Integridade: /mnt/var/www/default/

Diretórios de VirtualHost de Preparo e Habilitados

Os diretórios a seguir permitem criar arquivos de configuração com uma área de preparo, de modo que você possa trabalhar nos arquivos e habilitá-los apenas quando estiverem prontos.

  • /etc/httpd/conf.d/available_vhosts/
    • Esta pasta hospeda todos os arquivos do < VirtualHost /> chamados .vhost.
  • /etc/httpd/conf.d/enabled_vhosts/
    • Quando estiver pronto para usar os arquivos .vhost contidos na pasta available_vhosts, vincule-os usando um caminho relativo no diretório enabled_vhosts.

Diretórios conf.d Adicionais

Há partes adicionais que são comuns nas configurações do Apache. Criamos subdiretórios para permitir uma maneira limpa de separar esses arquivos e não temos todos os arquivos em um diretório.

  1. Substitui o Diretório Este diretório pode conter todos os \*_rewrite.rules arquivos criados por você que contêm a sintaxe típica RewriteRule que envolve módulo mod_rewrite dos servidores Web Apache.

    • /etc/httpd/conf.d/rewrites/
  2. Diretório de listas de permissões Este diretório pode conter todos os \*_whitelist.rules arquivos criados que contêm a Permissão de IP típica ou a Sintaxe de IP que envolve os controles de acesso dos servidores Web Apache.

    • /etc/httpd/conf.d/whitelists/
  3. Diretório de Variáveis Esse diretório pode conter todos os arquivos \*.vars criados por você, que contêm variáveis que podem ser consumidas em seus arquivos de configuração.

    • /etc/httpd/conf.d/variables/

Diretório de Configuração Específica do Módulo Dispatcher

O Apache Web Server é muito extensível e, quando um módulo tem vários arquivos de configuração, é recomendável criar seu próprio diretório de configuração no diretório base de instalação, em vez de agrupar o padrão.

As práticas recomendadas são criadas e seguidas.

Diretório do arquivo de configuração do módulo

  • /etc/httpd/conf.dispatcher.d/

Preparo e Diretórios de Farm Habilitados

Os diretórios a seguir permitem criar arquivos de configuração com uma área de preparo, de modo que você possa trabalhar nos arquivos e habilitá-los apenas quando estiverem prontos.

  • /etc/httpd/conf.dispatcher.d/available_farms/
    • Esta pasta hospeda todos os arquivos do /myfarm { chamados *_farm.any.
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Quando estiver pronto para usar o arquivo farm contido na pasta available_farms, vincule-o usando um caminho relativo no diretório enabled_farms.

Diretórios conf.dispatcher.d Adicionais

Há partes adicionais que são subseções das configurações de arquivo do farm do Dispatcher, e os subdiretórios são criados para permitir uma maneira limpa de separar esses arquivos e não ter todos os arquivos em um diretório.

  1. Diretório de Cache Esse diretório contém todos os arquivos *_cache.any, *_invalidate.any criados por você, que contêm suas regras sobre como você deseja que o módulo lide com os elementos em cache provenientes do AEM, bem como a sintaxe de regras de invalidação.  Mais detalhes sobre esta seção estão aqui.

    • /etc/httpd/conf.dispatcher.d/cache/
  2. Diretório de Cabeçalhos do Cliente Esse diretório pode conter todos os *_clientheaders.any arquivos criados por você que contenham listas de Cabeçalhos do cliente que você deseja passar para o AEM quando entrar uma solicitação.  Mais detalhes sobre esta seção estão aqui.

    • /etc/httpd/conf.dispatcher.d/clientheaders/
  3. Diretório de Filtros Esse diretório pode conter todos os *_filters.any arquivos criados por você, que contêm todas as regras de filtro para bloquear ou permitir o tráfego pelo Dispatcher para alcançar o AEM.

    • /etc/httpd/conf.dispatcher.d/filters/
  4. Diretório de Processamento Esse diretório pode conter todos os *_renders.any arquivos criados por você que contenham os detalhes de conectividade para cada servidor back-end do qual o Dispatcher consome conteúdo.

    • /etc/httpd/conf.dispatcher.d/renders/
  5. Diretório Vhosts Este diretório pode conter todos os arquivos *_vhosts.any criados por você que contenham uma lista dos nomes de domínio e caminhos para corresponder a um farm específico para um determinado servidor back-end.

    • /etc/httpd/conf.dispatcher.d/vhosts/

Concluir Estrutura de Pastas

O AMS estruturou cada um dos arquivos com extensões de arquivo personalizadas e com a intenção de evitar problemas/conflitos de namespace e qualquer confusão.

Este é um exemplo de um conjunto de arquivos padrão de uma implantação padrão do AMS:

/etc/httpd/``
├── conf``
│├── httpd.conf``
│└── magic
├── conf.d
│├── autoindex.conf
│├── available_vhosts
││ ├── 000_unhealthy_author.vhost
││├── 000_unhealthy_publish.vhost
││├── aem_author.vhost
││├── aem_flush.vhost
││├── aem_health.vhost
│   │   ├── aem_lc.vhost
│   │   └── aem_publish.vhost
│   ├── dispatcher_vhost.conf
│   ├── enabled_vhosts
.vhost
.vhost
.vhost
.vhost
│   ├── README│   ├── rewrites
│   │   ├── base_rewrite.rules
│   │   └── xforwarded_forcessl_rewrite.rules│   ├── userdir.conf
│   ├── variables│   │   └── ams_default.vars
│   ├── welcome.conf
│   └── whitelists│       └── 000_base_whitelist.rules
├── conf.dispatcher.d
│   ├── available_farms│   │   ├── 000_ams_author_farm.any
│   │   ├── 001_ams_lc_farm.any│   │   └── 999_ams_publish_farm.any
│   ├── cache
│   │   ├── ams_author_cache.any
│   │   ├── ams_author_invalidate_allowed.any
│   │   ├── ams_publish_cache.any
│   │   └── ams_publish_invalidate_allowed.any
│   ├── clientheaders
│   │   ├── ams_author_clientheaders.any
│   │   ├── ams_common_clientheaders.any
│   │   ├── ams_lc_clientheaders.any
│   │   └── ams_publish_clientheaders.any
│   ├── dispatcher.any
.any
.any
│   ├── filters
│   │   ├── ams_author_filters.any
│   │   ├── ams_lc_filters.any
│   │   └── ams_publish_filters.any
│   ├── renders
│   │   ├── ams_author_renders.any
│   │   ├── ams_lc_renders.any
│   │   └── ams_publish_renders.any
│   └── vhosts
│       ├── ams_author_vhosts.any
│       ├── ams_lc_vhosts.any
│       └── ams_publish_vhosts.any
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   ├── 01-cgi.conf
│   └── 02-dispatcher.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd

Mantendo-o ideal

O Enterprise Linux tem ciclos de patch para o Apache Webserver Package (httpd).

Quanto menos arquivos padrão instalados forem alterados, melhor, por motivos que fazem com que, se houver correções de segurança ou melhorias de configuração corrigidas aplicadas por meio do comando RPM / Yum, elas não apliquem as correções sobre um arquivo alterado.

Em vez disso, ele cria um arquivo .rpmnew ao lado do original.  Isso significa que você perderá algumas alterações desejadas e criará mais lixo em suas pastas de configuração.

O Enterprise Linux foi configurado adequadamente para lidar melhor com esse caso de uso.  Elas fornecem áreas em que você pode estender ou substituir os padrões definidos para você.  Dentro da instalação base do httpd você encontrará o arquivo /etc/httpd/conf/httpd.conf, que contém sintaxe como:

Include conf.modules.d/*.conf


IncludeOptional conf.d/*.conf

A ideia é que o Apache deseje estender os módulos e as configurações ao adicionar novos arquivos aos diretórios /etc/httpd/conf.d/ e /etc/httpd/conf.modules.d/ com uma extensão de arquivo .conf .

Como exemplo perfeito ao adicionar o módulo do Dispatcher ao Apache, você criaria um arquivo do módulo .so em /etc/httpd/modules/ e o incluiria adicionando um arquivo em /etc/httpd/conf.modules.d/02-dispatcher.conf, com o conteúdo para carregar o arquivo do módulo .so.

LoadModule dispatcher_module modules/mod_dispatcher.so

Observe que os arquivos já existentes fornecidos pelo Apache não são alterados. Você acabou de adicionar o seu aos diretórios em que ele deveria entrar.

Agora consuma o módulo no arquivo /etc/httpd/conf.d/dispatcher_vhost.conf, que inicializa o módulo e carrega o arquivo de configuração específico do módulo inicial.

<IfModule disp_apache2.c>

DispatcherConfig conf.dispatcher.d/dispatcher.any

...SNIP...</IfModule>

Novamente, você observará que adicionamos arquivos e módulos, mas não alteramos nenhum arquivo original.  Isso fornece a funcionalidade desejada e protege contra correções de patches desejadas ausentes, além de manter o mais alto nível de compatibilidade com cada atualização do pacote.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f