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

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 delle cartelle di 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 da yum archivio.

/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 ├── logs -> ../../var/log/httpd ├── modules -> ../../usr/lib64/httpd/modules └── run -> /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, generalmente montato in /mnt

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

DocumentRoot

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

Directory di 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 è degno di nota.

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/
  • Pubblicazione: /mnt/var/www/html/
  • Manutenzione di Catch-All e Health Check: /mnt/var/www/default/

Directory VirtualHost 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.d/available_vhosts/
    • Questa cartella contiene tutte le < VirtualHost /> file denominati .vhost
  • /etc/httpd/conf.d/enabled_vhosts/
    • Quando sei pronto a utilizzare il .vhost file che si trovano all'interno di available_vhosts collegarli mediante un percorso relativo nella cartella enabled_vhosts directory.

Aggiuntivo 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 tutte le \*_rewrite.rules file creati che contengono i file tipici RewriteRule sintassi per il coinvolgimento dei server web Apache mod_rewrite modulo.

    • /etc/httpd/conf.d/rewrites/
  2. Directory whitelists Questa directory può contenere tutte le \*_whitelist.rules file creati che contengono i file tipici IP consentiti o Richiedi IP sintassi per i server web Apache controlli di accesso

    • /etc/httpd/conf.d/whitelists/
  3. Directory variabili Questa directory può contenere tutte le \*.vars file creati che contengono variabili utilizzabili 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 del file di configurazione del modulo

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

Staging e directory farm 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.dispatcher.d/available_farms/
    • Questa cartella contiene tutte le /myfarm { file denominati *_farm.any
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Quando sei pronto a utilizzare il file farm che hai all’interno del available_farms collegarli mediante un percorso relativo nella cartella enabled_farms directory

Aggiuntivo conf.dispatcher.d Directory

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

  1. Directory cache Questa directory contiene tutte le *_cache.any, *_invalidate.any i file creati che contengono le regole su come desideri 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 tutte le *_clientheaders.any file creati che contengono elenchi di intestazioni client da passare a AEM quando arriva una richiesta.  Ulteriori dettagli su questa sezione sono disponibili su qui

    • /etc/httpd/conf.dispatcher.d/clientheaders/
  3. Directory filtri Questa directory può contenere tutte le *_filters.any file creati che contengono tutte le regole del filtro per bloccare o consentire il raggiungimento dell’AEM da parte del traffico attraverso Dispatcher.

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

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

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

Struttura completa delle cartelle

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 │   │   ├── aem_author.vhost -> ../available_vhosts/aem_author.vhost │   │   ├── aem_flush.vhost -> ../available_vhosts/aem_flush.vhost │   │   ├── aem_health.vhost -> ../available_vhosts/aem_health.vhost │   │   └── aem_publish.vhost -> ../available_vhosts/aem_publish.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 │   ├── enabled_farms │   │   ├── 000_ams_author_farm.any -> ../available_farms/000_ams_author_farm.any │   │   └── 999_ams_publish_farm.any -> ../available_farms/999_ams_publish_farm.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 ├── logs -> ../../var/log/httpd ├── modules -> ../../usr/lib64/httpd/modules └── run -> /run/httpd

La scelta ideale

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

I file predefiniti meno installati si modificano meglio, per motivi che se vi sono correzioni di sicurezza o miglioramenti di configurazione patch vengono applicati tramite il comando RPM / Yum non applica le correzioni sopra un file alterato.

Viene invece creato un .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 troverai il file /etc/httpd/conf/httpd.confe contiene una sintassi, ad esempio:

Include conf.modules.d/*.conf


IncludeOptional conf.d/*.conf

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

Come esempio perfetto quando aggiungi il modulo dispatcher ad Apache, creerai un modulo .so file in /etc/httpd/modules/ e quindi includerlo aggiungendo un file in /etc/httpd/conf.modules.d/02-dispatcher.conf con i contenuti per caricare il modulo .so file.

LoadModule dispatcher_module modules/mod_dispatcher.so

I file già esistenti forniti da Apache non vengono modificati. Hai appena aggiunto i tuoi alle directory che dovevano andare.

Ora utilizza 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, noterete che abbiamo aggiunto file e moduli ma non 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