Diseño básico del archivo de Adobe Managed Services (AMS)
Explore el conjunto de archivos de configuración estándar de AMS y las ideas subyacentes a este estándar de configuración en Adobe Experience Manager.
Descripción description
Entorno
Adobe Experience Manager (AEM)
Problema/Síntomas
Este documento explica el conjunto de archivos de configuración estándar de AMS y las ideas subyacentes a este estándar de configuración.
Resolución resolution
Estructura de carpetas de Enterprise Linux predeterminada
En AMS, la instalación base utiliza Enterprise Linux como sistema operativo base. Al instalar el servidor web Apache, tiene un conjunto de archivos de instalación predeterminado. Estos son los archivos predeterminados que se instalan instalando los RPM básicos proporcionados por el repositorio 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
Al seguir y cumplir el diseño/estructura de la instalación, obtiene las siguientes ventajas:
- Es más fácil admitir un diseño predecible
- Automáticamente familiar para cualquiera que haya trabajado en instalaciones HTTPD de Enterprise Linux en el pasado
- Permite aplicar parches a los ciclos totalmente compatibles con el sistema operativo sin conflictos ni ajustes manuales
- Evita violaciones de SELinux de contextos de archivo etiquetados incorrectamente
Nota:
Las imágenes de los servidores Managed Services de Adobe suelen tener pequeñas unidades raíz del sistema operativo. Los datos se colocan en un volumen independiente, que normalmente se monta en /mnt
.
A continuación, se utiliza el volumen, en lugar de los valores predeterminados para los siguientes directorios predeterminados:
RaízDocumento
- Predeterminado:
/var/www/html
- AMS:
/mnt/var/www/html
Directorio de registro
- Predeterminado:
/var/log/httpd
- AMS:
/mnt/var/log/httpd
Tenga en cuenta que los directorios antiguos y nuevos se asignan de nuevo al punto de montaje original para eliminar confusiones. El uso de un volumen separado no es vital, pero es notable.
Complementos de AMS
AMS se suma a la instalación base del servidor web Apache.
Raíces de documento
Raíces de documento predeterminadas de AMS:
- Autor:
/mnt/var/www/author/
- Publish:
/mnt/var/www/html/
- Mantenimiento de comprobación de estado y captador global:
/mnt/var/www/default/
Directorios VirtualHost de ensayo y habilitados
Los siguientes directorios le permiten crear archivos de configuración con un área de ensayo, de modo que pueda trabajar en archivos y habilitarlos únicamente cuando estén listos.
/etc/httpd/conf.d/available_vhosts/
- Esta carpeta aloja todos sus
<
archivos VirtualHost />
llamados.vhost
.
- Esta carpeta aloja todos sus
/etc/httpd/conf.d/enabled_vhosts/
- Cuando esté listo para usar los
.vhost
archivos que tiene dentro de la carpetaavailable_vhosts
, vincúlelos simbólicamente con una ruta relativa al directorioenabled_vhosts
.
- Cuando esté listo para usar los
Directorios conf.d
adicionales
Hay piezas adicionales que son comunes en las configuraciones de Apache. Hemos creado subdirectorios para permitir una manera limpia de separar esos archivos y no tener todos los archivos en un directorio.
-
Reescribe el directorio Este directorio puede contener todos los
\*_rewrite.rules
archivos que cree y que contengan la sintaxis típica de RewriteRule que involucra al módulo mod_rewrite de los servidores web Apache./etc/httpd/conf.d/rewrites/
-
Directorio de listas blancas Este directorio puede contener todos los
\*_whitelist.rules
archivos que cree y que contengan la sintaxis típica de IP Allow o Require IP que involucre a los servidores web Apache controles de acceso./etc/httpd/conf.d/whitelists/
-
Directorio de variables Este directorio puede contener todos los
\*.vars
archivos que cree y que contengan variables que pueda consumir en sus archivos de configuración./etc/httpd/conf.d/variables/
Directorio de configuración específico del módulo Dispatcher
El servidor web Apache es muy extensible y, cuando un módulo tiene numerosos archivos de configuración, se recomienda crear su propio directorio de configuración bajo el directorio base de instalación en lugar de agrupar el predeterminado.
Se crean y siguen las prácticas recomendadas.
Directorio de archivos de configuración del módulo
/etc/httpd/conf.dispatcher.d/
Directorios de granjas habilitados y de ensayo
Los siguientes directorios le permiten crear archivos de configuración con un área de ensayo, de modo que pueda trabajar en archivos y habilitarlos únicamente cuando estén listos.
/etc/httpd/conf.dispatcher.d/available_farms/
- Esta carpeta hospeda todos sus
/myfarm {
archivos llamados*_farm.any
.
- Esta carpeta hospeda todos sus
/etc/httpd/conf.dispatcher.d/enabled_farms/
- Cuando esté listo para usar el archivo de granja que tiene dentro de la carpeta
available_farms
, vincúlelos simbólicamente con una ruta relativa al directorioenabled_farms
.
- Cuando esté listo para usar el archivo de granja que tiene dentro de la carpeta
Directorios conf.dispatcher.d
adicionales
Hay partes adicionales que son subsecciones de las configuraciones de archivos de la granja de Dispatcher, y se crean subdirectorios para permitir una manera limpia de separar esos archivos y no tener todos los archivos en un directorio.
-
Directorio de caché AEM Este directorio contiene todos los
*_cache.any
,*_invalidate.any
archivos que crea y que contienen sus reglas sobre cómo desea que el módulo administre los elementos de caché que provienen de la sintaxis de reglas de invalidación y de la caché de los elementos que provienen de los elementos de la caché de la base de datos, así como la sintaxis de reglas de invalidación. Más detalles sobre esta sección están aquí./etc/httpd/conf.dispatcher.d/cache/
-
Directorio de encabezados de cliente AEM Este directorio puede contener todos los
*_clientheaders.any
archivos que cree y que contengan listas de los encabezados de cliente a los que desee enviar una solicitud cuando se reciba una solicitud. Más detalles sobre esta sección se encuentran aquí./etc/httpd/conf.dispatcher.d/clientheaders/
-
Directorio de filtros Este directorio puede contener todos los
*_filters.any
archivos que cree y que contengan todas las reglas de filtrado para bloquear o permitir que el tráfico a través de Dispatcher AEM llegue a los archivos de./etc/httpd/conf.dispatcher.d/filters/
-
Directorio de procesamientos Este directorio puede contener todos los
*_renders.any
archivos que cree y que contengan los detalles de conectividad con cada servidor back-end desde el que Dispatcher consume contenido./etc/httpd/conf.dispatcher.d/renders/
-
Directorio Vhosts Este directorio puede contener todos los
*_vhosts.any
archivos que cree y que contengan una lista de los nombres de dominio y las rutas de acceso para que coincidan con una granja en particular o con un servidor backend en particular./etc/httpd/conf.dispatcher.d/vhosts/
Completar estructura de carpetas
AMS ha estructurado cada uno de los archivos con extensiones de archivo personalizadas y con la intención de evitar problemas/conflictos de área de nombres y cualquier confusión.
Este es un ejemplo de un conjunto de archivos estándar de una implementación predeterminada de 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
Mantenerlo ideal
Enterprise Linux tiene ciclos de parches para el paquete Apache Webserver (httpd).
Cuanto menos instalados sean los archivos predeterminados que cambie, mejor, por motivos que si hay correcciones de seguridad o mejoras de configuración parcheadas que se aplican mediante el comando RPM / Yum, no se aplican las correcciones sobre un archivo alterado.
En su lugar, crea un archivo .rpmnew
junto al original. Esto significa que se perderán algunos cambios que podría haber deseado y se habrá creado más elementos no utilizados en las carpetas de configuración.
Enterprise Linux se ha configurado correctamente para gestionar este caso de uso de una mejor manera. Proporcionan áreas en las que se pueden ampliar o anular los valores predeterminados que establecen. Dentro de la instalación base de httpd encontrará el archivo /etc/httpd/conf/httpd.conf
, que contiene sintaxis, como:
Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf
La idea es que Apache quiera que amplíe los módulos y las configuraciones al agregar nuevos archivos a los directorios /etc/httpd/conf.d/
y /etc/httpd/conf.modules.d/
con una extensión de archivo .conf
.
Como ejemplo perfecto al agregar el módulo de Dispatcher a Apache, crearía un archivo de módulo .so
en /etc/httpd/modules/
y, a continuación, lo incluiría agregando un archivo en /etc/httpd/conf.modules.d/02-dispatcher.conf
, con el contenido para cargar el archivo de módulo .so
.
LoadModule dispatcher_module modules/mod_dispatcher.so
Tenga en cuenta que los archivos ya existentes proporcionados por Apache no se modifican. Acabas de añadir los tuyos a los directorios a los que iban a entrar.
Ahora consuma el módulo en el archivo /etc/httpd/conf.d/dispatcher_vhost.conf
, que inicializa el módulo y carga el archivo de configuración inicial específico del módulo.
<IfModule disp_apache2.c>
DispatcherConfig conf.dispatcher.d/dispatcher.any
...SNIP...</IfModule>
Nuevamente notará que hemos agregado archivos y módulos, pero no alterado ningún archivo original. Esto proporciona la funcionalidad deseada y protege contra la falta de correcciones de parches deseadas, así como mantener el máximo nivel de compatibilidad con cada actualización del paquete.