Layout dei file di base di Adobe Managed Services (AMS)

Scopri il set di file di configurazione standard AMS e il pensiero che sta dietro a questo standard di configurazione in Adobe Experience Manager.

Descrizione description

Ambiente

Adobe Experience Manager (AEM)

Problema/Sintomi

Questo documento descrive il set di file di configurazione standard AMS e il pensiero che sta dietro a questo standard di configurazione.

Risoluzione resolution

Struttura predefinita cartelle Enterprise Linux

In AMS l'installazione di base utilizza Enterprise Linux come sistema operativo di base. Durante l’installazione di Apache Webserver, è presente un set di file di installazione predefinito. Di seguito sono riportati i file predefiniti che vengono installati installando i RPM di base forniti dall'archivio 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

Seguendo e rispettando la progettazione/struttura dell'installazione, si ottengono i seguenti vantaggi:

  • Supporto più semplice di un layout prevedibile
  • Automaticamente familiare a tutti coloro che hanno lavorato sulle installazioni HTTPD di Enterprise Linux in passato
  • Consente cicli di patch completamente supportati dal sistema operativo senza conflitti o regolazioni manuali
  • Evita violazioni SELinux di contesti di file con etichetta errata

Nota:

Le immagini dei server Managed Services di Adobe hanno in genere unità radice del sistema operativo di piccole dimensioni. I dati vengono inseriti in un volume separato, in genere montato in /mnt.

Viene quindi utilizzato il volume, anziché i valori predefiniti per le seguenti directory predefinite:

RadiceDocumento

  • Predefinito: /var/www/html
  • AMS: /mnt/var/www/html

Directory registro

  • Predefinito: /var/log/httpd
  • AMS: /mnt/var/log/httpd

Tieni presente che le directory vecchia e nuova sono mappate al punto di montaggio originale per evitare confusione. L'utilizzo di un volume separato non è fondamentale, ma è importante.

Componenti aggiuntivi AMS

AMS aggiunge all’installazione di base del server web Apache.

Directory principali documenti

Directory principali documenti predefinite AMS:

  • Autore: /mnt/var/www/author/
  • Publish: /mnt/var/www/html/
  • Manutenzione di Catch-All e Verifica stato: /mnt/var/www/default/

Directory VirtualHost di gestione temporanea e abilitate

Le directory seguenti consentono di creare file di configurazione con un'area di gestione temporanea, in modo da poter lavorare sui file e abilitarli solo quando sono pronti.

  • /etc/httpd/conf.d/available_vhosts/
    • Questa cartella ospita tutti i file < VirtualHost /> denominati .vhost.
  • /etc/httpd/conf.d/enabled_vhosts/
    • Quando si è pronti a utilizzare i file .vhost presenti nella cartella available_vhosts, collegarli tramite un percorso relativo nella directory enabled_vhosts.

Altre conf.d Directory

Esistono parti aggiuntive comuni nelle configurazioni di Apache. Abbiamo creato sottodirectory per consentire un modo pulito per separare questi file e non avere tutti i file in una directory.

  1. Riscrive La Directory Questa directory può contenere tutti i \*_rewrite.rules file creati che contengono la tipica sintassi RewriteRule che coinvolge il modulo mod_rewrite dei server Web Apache.

    • /etc/httpd/conf.d/rewrites/
  2. Directory whitelists Questa directory può contenere tutti i \*_whitelist.rules file creati che contengono la tipica sintassi IP Consentiti o Richiedi IP che coinvolge i server Web Apache controlli di accesso.

    • /etc/httpd/conf.d/whitelists/
  3. Directory variabili Questa directory può contenere tutti i \*.vars file creati che contengono variabili che è possibile utilizzare nei file di configurazione.

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

Directory di configurazione specifica del modulo Dispatcher

Il server web Apache è molto estensibile e, quando un modulo dispone di numerosi file di configurazione, è consigliabile creare una directory di configurazione personalizzata nella directory della base di installazione, invece di riempire quella predefinita.

Vengono create e seguite le best practice.

Directory file di configurazione modulo

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

Directory farm abilitate e di gestione temporanea

Le directory seguenti consentono di creare file di configurazione con un'area di gestione temporanea, in modo da poter lavorare sui file e abilitarli solo quando sono pronti.

  • /etc/httpd/conf.dispatcher.d/available_farms/
    • Questa cartella ospita tutti i file /myfarm { denominati *_farm.any.
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Quando si è pronti a utilizzare il file farm presente nella cartella available_farms, collegarli tramite un percorso relativo nella directory enabled_farms.

Altre conf.dispatcher.d Directory

Sono disponibili sezioni secondarie delle configurazioni dei file di farm di Dispatcher e vengono create sottodirectory per consentire di separare tali file in modo ordinato e non disporre di tutti i file in una directory.

  1. Directory cache Questa directory contiene tutti i *_cache.any, *_invalidate.any file creati che contengono le regole su come si desidera che il modulo gestisca gli elementi di caching provenienti da AEM, nonché la sintassi delle regole di invalidazione.  Ulteriori dettagli su questa sezione sono qui.

    • /etc/httpd/conf.dispatcher.d/cache/
  2. Directory intestazioni client Questa directory può contenere tutti i file *_clientheaders.any creati che contengono gli elenchi delle intestazioni client da passare all'AEM quando arriva una richiesta.  Ulteriori dettagli su questa sezione sono qui.

    • /etc/httpd/conf.dispatcher.d/clientheaders/
  3. Directory filtri Questa directory può contenere tutti i *_filters.any file creati che contengono tutte le regole del filtro per bloccare o consentire il traffico attraverso Dispatcher per raggiungere l'AEM.

    • /etc/httpd/conf.dispatcher.d/filters/
  4. Directory rendering Questa directory può contenere tutti i file *_renders.any creati che contengono i dettagli di connettività a ogni server backend da cui Dispatcher utilizza il contenuto.

    • /etc/httpd/conf.dispatcher.d/renders/
  5. Directory Vhosts Questa directory può contenere tutti i file *_vhosts.any creati che contengono un elenco dei nomi di dominio e dei percorsi corrispondenti a una particolare farm per un particolare server back-end.

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

Struttura cartella completa

AMS ha strutturato ciascuno dei file con estensioni di file personalizzate con l’intenzione di evitare problemi/conflitti di spazio dei nomi e qualsiasi confusione.

Di seguito è riportato un esempio di un set di file standard da una distribuzione predefinita di 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

Ideale

Enterprise Linux dispone di cicli di patch per il pacchetto Apache Webserver (httpd).

Minore è il numero di file predefiniti installati modificati, migliore è il motivo per cui, se vi sono correzioni di sicurezza o miglioramenti alla configurazione applicati tramite il comando RPM / Yum, non applicano le correzioni sopra un file modificato.

Viene invece creato un file .rpmnew accanto all'originale.  In questo modo, potresti perdere alcune modifiche desiderate e creare più oggetti inattivi nelle cartelle di configurazione.

Enterprise Linux è stato configurato correttamente per gestire questo caso d’uso in modo migliore.  Offrono aree in cui è possibile estendere o ignorare i valori predefiniti impostati.  All'interno dell'installazione di base di httpd si troverà il file /etc/httpd/conf/httpd.conf con la sintassi seguente:

Include conf.modules.d/*.conf


IncludeOptional conf.d/*.conf

L'idea è che Apache desideri estendere i moduli e le configurazioni per aggiungere nuovi file alle directory /etc/httpd/conf.d/ e /etc/httpd/conf.modules.d/ con un'estensione di file .conf .

Come esempio perfetto quando si aggiunge il modulo Dispatcher ad Apache, si crea un file modulo .so in /etc/httpd/modules/ e quindi lo si include aggiungendo un file in /etc/httpd/conf.modules.d/02-dispatcher.conf, con il contenuto per caricare il file modulo .so.

LoadModule dispatcher_module modules/mod_dispatcher.so

I file già esistenti forniti da Apache non vengono modificati. Hai appena aggiunto i tuoi alle directory in cui dovevano essere inseriti.

Utilizzare ora il modulo nel file /etc/httpd/conf.d/dispatcher_vhost.conf, che inizializza il modulo e carica il file di configurazione specifico del modulo iniziale.

<IfModule disp_apache2.c>

DispatcherConfig conf.dispatcher.d/dispatcher.any

...SNIP...</IfModule>

Anche in questo caso, si noterà che sono stati aggiunti file e moduli, ma non è stato modificato alcun file originale.  In questo modo è possibile ottenere le funzionalità desiderate e proteggersi da eventuali correzioni di patch mancanti, nonché mantenere il massimo livello di compatibilità con ogni aggiornamento del pacchetto.

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