Dispatcher es la herramienta de almacenamiento en caché o de equilibrio de carga de Adobe Experience Manager.
La siguiente página proporciona las directrices para configurar Dispatcher para un proyecto de AEM Screens.
Si dispatcher está disponible, las conexiones al servlet de registro se pueden prevenir filtrando en las reglas de Dispatcher.
Si no hay Dispatcher, deshabilite el servlet de registro en la lista de componentes de OSGi.
Antes de configurar Dispatcher para un proyecto de AEM Screens, debe tener conocimientos previos de Dispatcher.
Consulte Configuración de Dispatcher para obtener más información.
Las siguientes configuraciones de Dispatcher solo se aplican a la versión v2 de Manifiesto. Consulte Configuraciones de Dispatcher para la versión de manifiesto v3 para la versión v3 del manifiesto.
Los reproductores o dispositivos de AEM Screens utilizan una sesión autenticada para acceder a los recursos de las instancias de publicación. Por lo tanto, cuando tiene varias instancias de publicación, las solicitudes siempre deben ir a la misma instancia de publicación para que la sesión autenticada sea válida para todas las solicitudes procedentes de los reproductores o dispositivos de AEM Screens.
Siga los pasos a continuación para configurar Dispatcher para un proyecto de AEM Screens.
Si desea utilizar varias instancias de publicación frontadas por un solo Dispatcher, deberá actualizar la variable dispatcher.any
para habilitar la permanencia
/stickyConnections {
/paths
{
"/"
}
}
Si tiene una instancia de publicación delante de un despachante, habilitar la permanencia en el despachante no ayudará, ya que el equilibrador de carga puede enviar cada solicitud a Dispatcher. En este caso, haga clic en Habilitar en Permanencia para habilitarlo a nivel de equilibrador de carga, como se muestra en la figura siguiente:
Por ejemplo, si está utilizando AWS ALB, consulte Grupos de destino de sus equilibradores de carga de aplicaciones para permitir la adherencia en el nivel ALB. Habilite la permanencia durante 1 día.
Agregue lo siguiente a /clientheaders
sección:
X-Requested-With
X-SET-HEARTBEAT
X-REQUEST-COMMAND
Para configurar filtros de Screens, agregue lo siguiente a /filter.
## AEM Screens Filters
## # Login, Ping and Device Configurations
/0200 { /type "allow" /method "POST" /url "/libs/granite/core/content/login.validate/j_security_check" }
/0201 { /type "allow" /method "GET" /url "/libs/granite/csrf/token.json" }
/0202 { /type "allow" /method "GET" /url "/content/screens/svc.json" }
/0203 { /type "allow" /method "GET" /url "/content/screens/svc.ping.json" }
/0204 { /type "allow" /method "GET" /url "/content/screens/svc.config.json" }
## # Device Dashboard Configurations
/0210 { /type "allow" /method '(GET|POST)' /url "/home/users/screens/*/devices/*/profile_screens.preferences.json" }
/0211 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.logs.json" }
/0212 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.statusinfo.json" }
/0213 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.screenshot.json" }
## # Content Configurations
/0220 { /type "allow" /method '(GET|HEAD)' /url "/content/screens/*" }
/0221 { /type "allow" /method '(GET|HEAD)' /url "/content/screens/*/jcr:content/*/offline-config_*.zip" }
/0222 { /type "allow" /method '(GET|HEAD)' /url '/var/contentsync/content/screens/.+/jcr:content/.+/offline-config_.*\.[0-9]+\.zip' }
Deshabilitar el almacenamiento en caché de Dispatcher para /content/screens ruta.
Los reproductores de Screens utilizan una sesión autenticada, por lo que Dispatcher no almacena en caché ninguna de las solicitudes de reproductores de pantallas para channels/assets
.
Para habilitar la caché para los recursos de modo que se proporcionen los recursos desde la caché de Dispatcher, debe:
/allowAuthorization 1
en /cache
sección/rules
sección de /cache
/0000
{
/glob "*"
/type "allow"
}
/0001
{
# Disable Dispatcher Cache for Screens channels
/glob "/content/screens/*.html"
/type "deny"
}
/0002
{
# Disable Dispatcher Cache for Screens offline manifests
/glob "/content/screens/*.json"
/type "deny"
}
/0003
{ # Disable Dispatcher Cache for Screens devices json
/glob "/home/users/screens/*.json"
/type "deny"
}
Asegúrese de permitir estos filtros y reglas de caché en los distribuidores que se encuentran delante de las instancias de publicación para el funcionamiento de Screens.
Asegúrese de cumplir estos dos requisitos previos antes de configurar Dispatcher (versión de manifiesto v3) para AEM Screens:
Asegúrese de que está utilizando v3 manifests
. Vaya a https://<server:port>/system/console/configMgr/com.adobe.cq.screens.offlinecontent.impl.ContentSyncCacheFeatureFlag
y Enable ContentSync Cache
está desmarcada.
Asegúrese de que el agente de vaciado de Dispatcher esté configurado en /etc/replication/agents.publish/dispatcher1useast1Agent
en la instancia de publicación.
## AEM Screens Filters
## # Login, Ping and Device Configurations
/0200 { /type "allow" /method "POST" /url "/libs/granite/core/content/login.validate/j_security_check" }
/0201 { /type "allow" /method "GET" /url "/libs/granite/csrf/token.json" }
/0202 { /type "allow" /method "GET" /url "/content/screens/svc.json" }
/0203 { /type "allow" /method "GET" /url "/content/screens/svc.ping.json" }
/0204 { /type "allow" /method "GET" /url "/content/screens/svc.config.json" }
## # Device Dashboard Configurations
/0210 { /type "allow" /method '(GET|POST)' /url "/home/users/screens/*/devices/*/profile_screens.preferences.json" }
/0211 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.logs.json" }
/0212 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.statusinfo.json" }
/0213 { /type "allow" /method "POST" /url "/home/users/screens/*/devices/*/profile_screens.screenshot.json" }
## # Content Configurations
/0220 { /type "allow" /method '(GET|HEAD)' /url "/content/screens/*" }
#/0221 { /type "allow" /method '(GET|HEAD)' /url "/content/experience-fragments/*" } ## uncomment this, if you're using experience-fragments
/0222 { /type "allow" /extension '(css|eot|gif|ico|jpeg|jpg|js|gif|pdf|png|svg|swf|ttf|woff|woff2|html|mp4|mov|m4v)' /path "/content/dam/*" } ## add any other formats required for your project here
## # Enable clientlibs proxy servlet
/0230 { /type "allow" /method "GET" /url "/etc.clientlibs/*" }
Agregar /allowAuthorized "1"
a /cache
en publish_farm.any
.
Todos los reproductores de Screens utilizarán una sesión autenticada para conectarse a AEM (autor/publicación). Dispatcher no almacena en caché estas direcciones URL, por lo que deberíamos habilitarlas.
Agregar statfileslevel "10"
a /cache
en publish_farm.any
Esto admitirá el almacenamiento en caché de hasta 10 niveles desde la raíz de documento de la caché y se invalidará según corresponda cuando se publique el contenido en lugar de invalidarlo todo. Siéntase libre de cambiar este nivel en función de la profundidad con que tenga la estructura de contenido
Agregue lo siguiente a /invalidate section in publish_farm.any
/0003 {
/glob "*.json"
/type "allow"
}
Agregue las siguientes reglas a /rules
en /cache
en publish_farm.any
o en un archivo incluido desde publish_farm.any
:
## Don't cache CSRF login tokens
/0001
{
/glob "/libs/granite/csrf/token.json"
/type "deny"
}
## Allow Dispatcher Cache for Screens channels
/0002
{
/glob "/content/screens/*.html"
/type "allow"
}
## Allow Dispatcher Cache for Screens offline manifests
/0003
{
/glob "/content/screens/*.manifest.json"
/type "allow"
}
## Allow Dispatcher Cache for Assets
/0004
{
/glob "/content/dam/*"
/type "allow"
}
## Disable Dispatcher Cache for Screens devices json
/0005
{
/glob "/home/users/screens/*.json"
/type "deny"
}
## Disable Dispatcher Cache for Screens svc json
/0006
{
/glob "/content/screens/svc.json"
/type "deny"
}
Si usa campañas dirigidas con AEM Screens, entonces la variable segments.js file
servida por el dispatcher debe invalidarse, ya que agrega y publica nuevos segmentos en AEM. Sin esta regla de invalidación, las nuevas campañas con objetivo no funcionarán en el reproductor Screens (en su lugar, se mostrará el contenido predeterminado).
/etc/httpd/conf.dispatcher.d/available_farms/999_ams_publish_farm.any
. Esta es la regla para agregar: /invalidate {
.
.
/0004 {
/glob "conf/<project-name>/settings/wcm/.js"
/type "allow"
}
}
segments.js
se invalida y se obtiene la última cuando se modifica.