File di sola lettura

Il documento descrive quali file sono bloccati e non devono essere modificati e come impostare correttamente le impostazioni di configurazione desiderate.

??Sommario

??Precedente Registri comuni

Perché?

Quando AMS esegue il provisioning di un sistema, implementa una configurazione di base che rende tutto funzionale e sicuro.Non si tratta di impostazioni che AMS vuole garantire come una linea di base di funzionalità e sicurezza.A tal fine, alcuni file sono contrassegnati come di sola lettura e immutabili per evitare di modificarli.

Il layout non impedisce di modificarne il comportamento e di sovrascrivere le modifiche necessarie.Invece di modificare questi file, potrai sovrapporre il tuo file che sostituirà l’originale.

Questo ti rassicura anche che, quando AMS esegue le patch dei dispatcher con le ultime correzioni e miglioramenti di sicurezza, i tuoi file non verranno modificati. Potrai quindi continuare a usufruire dei miglioramenti e adottare solo le modifiche desiderate.

Mostra una pista da bowling con una palla che scorre lungo la corsia.  La palla presenta una freccia con la parola “tu”.  Le sponde dei canali si alzano e sopra mostrano le parole “file immutabili”.

Come illustrato nell’immagine precedente, i file immutabili non ti impediscono di giocare.Ti impediscono di danneggiare la prestazione e ti mantengono sulla in corsia.Questo metodo ci permette di avere poche caratteristiche davvero importanti:

  • Le personalizzazioni vengono gestite nei propri spazi di sicurezza
  • La sovrapposizione delle modifiche personalizzate rispecchia quella dei metodi di sovrapposizione in AEM
  • In AMS, le configurazioni di patch possono essere eseguite senza alterare le personalizzazioni
  • L’installazione base di test e le configurazioni personalizzate possono essere eseguite contemporaneamente per aiutare a individuare se i problemi sono causati dalle personalizzazioni o da altro

Quali file?

Elenco tipico dei file distribuiti con un dispatcher:

/etc/httpd/ 
├── conf 
│   └── httpd.conf 
├── conf.d 
│   ├── available_vhosts 
│   │   ├── 000_unhealthy_author.vhost 
│   │   ├── 000_unhealthy_publish.vhost 
│   │   ├── aem_author.vhost 
│   │   ├── aem_flush.vhost 
│   │   ├── aem_health.vhost 
│   │   ├── ams_lc.vhost 
│   │   └── aem_publish.vhost 
│   ├── dispatcher_vhost.conf 
│   ├── enabled_vhosts 
│   │   ├── aem_author.vhost -> /etc/httpd/conf.d/available_vhosts/aem_author.vhost 
│   │   ├── aem_flush.vhost -> /etc/httpd/conf.d/available_vhosts/aem_flush.vhost 
│   │   ├── aem_health.vhost -> /etc/httpd/conf.d/available_vhosts/aem_health.vhost 
│   │   └── aem_publish.vhost -> /etc/httpd/conf.d/available_vhosts/aem_publish.vhost 
│   ├── logformat.conf 
│   ├── remoteip.conf 
│   ├── rewrites 
│   │   ├── base_rewrite.rules 
│   │   └── xforwarded_forcessl_rewrite.rules 
│   ├── security.conf 
│   ├── variables 
│   │   ├── ootb.vars 
│   │   └── ams_default.vars 
│   └── whitelists 
│       └── 000_base_whitelist.rules 
├── conf.dispatcher.d 
│   ├── available_farms 
│   │   ├── 000_ams_catchall_farm.any 
│   │   ├── 001_ams_author_flush_farm.any
│   │   ├── 001_ams_publish_flush_farm.any 
│   │   ├── 002_ams_author_farm.any
│   │   ├── 002_ams_lc_farm.any 
│   │   └── 002_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_catchall_farm.any  -> /etc/httpd/conf.dispatcher.d/available_farms/000_ams_catchall_farm.any  
│   │   ├── 001_ams_author_flush_farm.any  -> /etc/httpd/conf.dispatcher.d/available_farms/001_ams_author_flush_farm.any  
│   │   ├── 001_ams_publish_flush_farm.any   -> /etc/httpd/conf.dispatcher.d/available_farms/001_ams_publish_flush_farm.any   
│   │   ├── 002_ams_author_farm.any  -> /etc/httpd/conf.dispatcher.d/available_farms/002_ams_author_farm.any 
│   │   └── 002_ams_publish_farm.any -> /etc/httpd/conf.dispatcher.d/available_farms/002_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 
│   ├── 01-cgi.conf 
│   └── 02-dispatcher.conf 
└── modules -> ../../usr/lib64/httpd/modules 
    └── mod_dispatcher.so

Per determinare quali file sono immutabili, puoi eseguire il seguente comando su un dispatcher per visualizzare:

$ lsattr -Rl /etc/httpd 2>/dev/null | grep Immutable

Di seguito è riportato un esempio di risposta di quali file sono immutabili:

/etc/httpd/conf/httpd.conf   Immutable 
/etc/httpd/conf.d/available_vhosts/aem_author.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/aem_publish.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/aem_lc.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/aem_flush.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/aem_health.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/000_unhealthy_author.vhost Immutable 
/etc/httpd/conf.d/available_vhosts/000_unhealthy_publish.vhost Immutable 
/etc/httpd/conf.d/rewrites/base_rewrite.rules Immutable 
/etc/httpd/conf.d/rewrites/xforwarded_forcessl_rewrite.rules Immutable 
/etc/httpd/conf.d/whitelists/000_base_whitelist.rules Immutable 
/etc/httpd/conf.d/dispatcher_vhost.conf Immutable 
/etc/httpd/conf.d/logformat.conf Immutable 
/etc/httpd/conf.d/security.conf Immutable 
/etc/httpd/conf.modules.d/02-dispatcher.conf Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/000_ams_catchall_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/001_ams_author_flush_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/001_ams_publish_flush_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/002_ams_author_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/002_ams_lc_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/available_farms/002_ams_publish_farm.any Immutable 
/etc/httpd/conf.dispatcher.d/cache/ams_author_cache.any Immutable 
/etc/httpd/conf.dispatcher.d/cache/ams_author_invalidate_allowed.any Immutable 
/etc/httpd/conf.dispatcher.d/cache/ams_publish_cache.any Immutable 
/etc/httpd/conf.dispatcher.d/cache/ams_publish_invalidate_allowed.any Immutable 
/etc/httpd/conf.dispatcher.d/clientheaders/ams_author_clientheaders.any Immutable 
/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any Immutable 
/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any Immutable 
/etc/httpd/conf.dispatcher.d/clientheaders/ams_lc_clientheaders.any Immutable 
/etc/httpd/conf.dispatcher.d/filters/ams_author_filters.any Immutable 
/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any Immutable 
/etc/httpd/conf.dispatcher.d/filters/ams_lc_filters.any Immutable 
/etc/httpd/conf.dispatcher.d/renders/ams_author_renders.any Immutable 
/etc/httpd/conf.dispatcher.d/renders/ams_publish_renders.any Immutable 
/etc/httpd/conf.dispatcher.d/renders/ams_lc_renders.any Immutable 
/etc/httpd/conf.dispatcher.d/vhosts/ams_author_vhosts.any Immutable 
/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any Immutable 
/etc/httpd/conf.dispatcher.d/vhosts/ams_lc_vhosts.any Immutable 
/etc/httpd/conf.dispatcher.d/dispatcher.any Immutable

Come apportare modifiche

Variabili

Le variabili consentono di apportare modifiche funzionali senza dover cambiare i file di configurazione stessi.Alcuni elementi della configurazione possono essere corretti modificando i valori delle variabili.Un esempio che è possibile evidenziare dal file /etc/httpd/conf.d/dispatcher_vhost.conf viene mostrato qui:

Include /etc/httpd/conf.d/variables/ams_default.vars 
<IfModule disp_apache2.c> 
 DispatcherConfig conf.dispatcher.d/dispatcher.any 
 DispatcherLog    logs/dispatcher.log  
 DispatcherLogLevel ${DISP_LOG_LEVEL} 
 DispatcherDeclineRoot 0 
 DispatcherUseProcessedURL 1 
</IfModule>

Osserva come la direttiva DispatcherLogLevel ha una variabile di DISP_LOG_LEVEL invece del valore normale che dovresti vedere.Sopra tale sezione di codice potrai anche osservare un'istruzione “include” in un file di variabili.Il file della variabile /etc/httpd/conf.d/variables/ams_default.vars è quello che vogliamo esaminare successivamente.Di seguito è riportato il contenuto di tale file di variabili:

Define DISP_LOG_LEVEL info 
Define AUTHOR_WHITELIST_ENABLED 0 
Define PUBLISH_WHITELIST_ENABLED 0 
Define LIVECYCLE_WHITELIST_ENABLED 0 
Define AUTHOR_FORCE_SSL 1 
Define PUBLISH_FORCE_SSL 0 
Define LIVECYCLE_FORCE_SSL 1

Se osservi, il valore corrente della variabile DISP_LOG_LEVEL è info.Possiamo modificarlo per tracciare, eseguire il debug o il valore/livello del numero desiderato.Ora ogni posizione che controlla il livello di log si modifica automaticamente.

Metodo di sovrapposizione

Devi comprendere il file di inclusione di livello superiore perché sarà il punto di partenza per effettuare qualsiasi personalizzazione.Per iniziare con un semplice esempio, prendiamo uno scenario in cui vogliamo aggiungere un nuovo nome di dominio che intendiamo far puntare a questo dispatcher.L’esempio di dominio che utilizzeremo è we-retail.adobe.com. Per prima cosa copieremo un file di configurazione esistente in un nuovo file in cui possiamo aggiungere le modifiche:

$ cp /etc/httpd/conf.d/available_vhosts/aem_publish.vhost /etc/httpd/conf.d/available_vhosts/weretail_publish.vhost

Abbiamo copiato il file esistente aem_publish.vhost perché contiene già quello di cui abbiamo bisogno e non è necessario ricreare tutto dall’inizio.Ora è possibile modificare il nuovo file weretail.vhost e apportare le modifiche necessarie.

Prima:

<VirtualHost *:80> 
 ServerName publish 
 ServerAlias ${PUBLISH_DEFAULT_HOSTNAME} 
 DocumentRoot ${PUBLISH_DOCROOT} 
 <IfModule mod_headers.c> 
   Header always add X-Dispatcher ${DISP_ID} 
   Header always add X-Vhost &quot;publish&quot; 
   Header merge X-Frame-Options SAMEORIGIN &quot;expr=%{resp:X-Frame-Options}!='SAMEORIGIN'&quot; 
   Header merge X-Content-Type-Options nosniff &quot;expr=%{resp:X-Content-Type-Options}!='nosniff'&quot; 
  Header append Vary User-Agent env=!dont-vary 
 </IfModule> 
....... SNIP.........  
</VirtualHost>

Dopo:

<VirtualHost *:80> 
 ServerName weretail-publish 
 ServerAlias we-retail.adobe.com 
 DocumentRoot ${PUBLISH_DOCROOT} 
 <IfModule mod_headers.c> 
   Header always add X-Dispatcher ${DISP_ID} 
   Header always add X-Vhost &quot;werteail-publish&quot; 
   Header merge X-Frame-Options SAMEORIGIN &quot;expr=%{resp:X-Frame-Options}!='SAMEORIGIN'&quot; 
   Header merge X-Content-Type-Options nosniff &quot;expr=%{resp:X-Content-Type-Options}!='nosniff'&quot; 
  Header append Vary User-Agent env=!dont-vary 
 </IfModule> 
....... SNIP.........  
</VirtualHost>

Abbiamo aggiornato il nostro ServerName e ServerAlias per far corrispondere i nuovi nomi di dominio, nonché per aggiornare altre intestazioni breadcrumb. Ora attiviamo il nostro nuovo file per consentire ad Apache di sapere come utilizzarlo:

$ cd /etc/httpd/conf.d/enabled_vhosts/; ln -s ../available_vhosts/weretail_publish.vhost .

Ora il server web di Apache sa che il dominio è qualcosa per cui dovrebbe produrre traffico, ma dobbiamo ancora informare il modulo dispatcher che dispone di un nuovo nome di dominio da rispettare.Inizieremo creando un nuovo file *_vhost.any /etc/httpd/conf.dispatcher.d/vhosts/weretail_vhosts.any e all’interno di quel file inseriremo il nome di dominio che vogliamo far rispettare:

&quot;we-retail.adobe.com&quot;

Ora dobbiamo creare un nuovo file farm che utilizzerà il nuovo file di accesso vhost e inizieremo copiando un file di avvio efficace sul nostro nuovo file.

$ cp /etc/httpd/conf.dispatcher.d/available_farms/999_ams_publish_farm.any /etc/httpd/conf.dispatcher.d/available_farms/400_weretail_publish_farm.any

Mostriamo le modifiche necessarie da apportare al file farm

Prima:

/publishfarm {   
 /virtualhosts { 
  $include &quot;/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any&quot; 
 } 
........SNIP.........  
}

Dopo:

/weretailpublishfarm {   
 /virtualhosts { 
  $include &quot;/etc/httpd/conf.dispatcher.d/vhosts/weretail_publish_vhosts.any&quot; 
 } 
........SNIP.........  
}

Ora abbiamo aggiornato il nome del farm e l’inclusione che utilizza nella sezione /virtualhosts della configurazione farm.  È necessario abilitare questo nuovo file farm in modo che possa essere utilizzato nella configurazione in esecuzione:

$ cd /etc/httpd/conf.dispatcher.d/enabled_farms/; ln -s ../available_farms/400_weretail_publish_farm.any .

Ora dovremmo semplicemente ricaricare il servizio server web e utilizzare il nostro nuovo dominio.

Nota:

Da notare che abbiamo cambiato solo le parti necessarie e abbiamo sfruttato le inclusioni e il codice esistenti che sono forniti con i file di configurazione della linea di base.  Dobbiamo solo delineare l’elemento che dobbiamo cambiare.  Semplifica le cose e ci permette di mantenere meno codici

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online