Configuración del tráfico en la CDN cdn-configuring-cloud
AEM as a Cloud Service ofrece una colección de funciones configurables en CDN administrado por Adobe que modifican la naturaleza de las solicitudes entrantes o de las respuestas salientes. Se pueden declarar las siguientes reglas, descritas en detalle en esta página, para lograr el siguiente comportamiento:
- Solicitar transformaciones : modifique aspectos de las solicitudes entrantes, incluidos encabezados, rutas y parámetros.
- Transformaciones de respuesta : modifique los encabezados que están en camino de regreso al cliente (por ejemplo, un explorador web).
- Redirecciones del lado del cliente - déclencheur un redireccionamiento del explorador. Esta función aún no es de GA, pero está disponible para los primeros usuarios que la adoptaron.
- Selectores de origen : proxy a un servidor de origen diferente.
También se pueden configurar en la CDN las reglas de filtro de tráfico (incluido WAF), que controlan qué tráfico permite o rechaza la CDN. Esta función ya está disponible y puede obtener más información al respecto en la Reglas de filtro de tráfico, incluidas las reglas WAF página.
Además, si la CDN no puede ponerse en contacto con su origen, puede escribir una regla que haga referencia a una página de error personalizada autoalojada (que luego se procesará). Para obtener más información, lea la Configuración de páginas de error de CDN artículo.
Todas estas reglas, declaradas en un archivo de configuración del control de código fuente, se implementan mediante Canalización de configuración de Cloud Manager. Tenga en cuenta que el tamaño acumulado del archivo de configuración, incluidas las reglas de filtro de tráfico, no puede superar los 100 KB.
Orden de evaluación order-of-evaluation
Desde el punto de vista funcional, las distintas funciones mencionadas anteriormente se evalúan en la siguiente secuencia:
Configuración initial-setup
Para poder configurar el tráfico en la CDN, debe hacer lo siguiente:
- Cree esta carpeta y estructura de archivos en la carpeta de nivel superior del proyecto Git:
config/
cdn.yaml
-
El
cdn.yaml
El archivo de configuración debe contener metadatos y las reglas que se describen en los ejemplos siguientes. Elkind
el parámetro debe establecerse enCDN
y la versión debe establecerse en la versión de esquema, que actualmente es1
. -
Cree una canalización de configuración de implementación de destino en Cloud Manager. Consulte configuración de canalizaciones de producción y configuración de canalizaciones que no son de producción.
Notas
- Actualmente, los RDE no admiten la canalización de configuración.
- Puede utilizar
yq
para validar localmente el formato YAML del archivo de configuración (por ejemplo,yq cdn.yaml
).
Sintaxis configuration-syntax
Los tipos de reglas de las secciones siguientes comparten una sintaxis común.
Se hace referencia a una regla mediante un nombre, una cláusula when condicional y acciones.
La cláusula when determina si se evaluará una regla en función de propiedades como dominio, ruta, cadenas de consulta, encabezados y cookies. La sintaxis es la misma en todos los tipos de reglas; para obtener más información, consulte la Sección Estructura de condición en el artículo Reglas del filtro de tráfico.
Los detalles del nodo de acciones difieren según el tipo de regla y se describen en las secciones individuales siguientes.
Solicitar transformaciones request-transformations
Las reglas de transformación de solicitudes permiten modificar las solicitudes entrantes. Las reglas admiten la configuración, desconfiguración y modificación de rutas, parámetros de consulta y encabezados (incluidas las cookies) en función de diversas condiciones de coincidencia, incluidas las expresiones regulares. También puede establecer variables, a las que se puede hacer referencia más adelante en la secuencia de evaluación.
Los casos de uso son variados e incluyen reescrituras de URL para la simplificación de la aplicación o la asignación de URL heredadas.
Como se ha mencionado anteriormente, existe un límite de tamaño para el archivo de configuración, por lo que las organizaciones con requisitos más grandes deben definir reglas en la apache/dispatcher
capa.
Ejemplo de configuración:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
requestTransformations:
removeMarketingParams: true
rules:
- name: set-header-rule
when:
reqProperty: path
like: /set-header
actions:
- type: set
reqHeader: x-some-header
value: some value
- name: unset-header-rule
when:
reqProperty: path
like: /unset-header
actions:
- type: unset
reqHeader: x-some-header
- name: unset-matching-query-params-rule
when:
reqProperty: path
equals: /unset-matching-query-params
actions:
- type: unset
queryParamMatch: ^removeMe_.*$
- name: unset-all-query-params-except-exact-two-rule
when:
reqProperty: path
equals: /unset-all-query-params-except-exact-two
actions:
- type: unset
queryParamMatch: ^(?!leaveMe$|leaveMeToo$).*$
- name: multi-action
when:
reqProperty: path
like: /multi-action
actions:
- type: set
reqHeader: x-header1
value: body set by transformation rule
- type: set
reqHeader: x-header2
value: '201'
- name: replace-html
when:
reqProperty: path
like: /mypath
actions:
- type: transform
reqProperty: path
op: replace
match: \.html$
replacement: ""
Acciones
En la tabla siguiente se explican las acciones disponibles.
Las acciones se pueden encadenar. Por ejemplo:
actions:
- type: transform
reqProperty: path
op: replace
match: \.html$
replacement: ""
- type: transform
reqProperty: path
op: tolower
Variables variables
Puede establecer variables durante la transformación de la solicitud y luego hacer referencia a ellas más adelante en la secuencia de evaluación. Consulte la orden de evaluación diagrama para obtener más información.
Ejemplo de configuración:
kind: "CDN"
version: "1"
metadata:
envTypes: ["prod", "dev"]
data:
requestTransformations:
rules:
- name: set-variable-rule
when:
reqProperty: path
equals: /set-variable
actions:
- type: set
var: some_var_name
value: some_value
responseTransformations:
rules:
- name: set-response-header-while-variable
when:
var: some_var_name
equals: some_value
actions:
- type: set
respHeader: x-some-header
value: some header value
Transformaciones de respuesta response-transformations
Las reglas de transformación de respuestas permiten establecer y anular la configuración de encabezados de las respuestas salientes de CDN. Además, consulte el ejemplo anterior para hacer referencia a una variable configurada anteriormente en una regla de transformación de solicitud.
Ejemplo de configuración:
kind: "CDN"
version: "1"
metadata:
envTypes: ["prod", "dev"]
data:
responseTransformations:
rules:
- name: set-response-header-rule
when:
reqProperty: path
like: /set-response-header
actions:
- type: set
value: value-set-by-resp-rule
respHeader: x-resp-header
- name: unset-response-header-rule
when:
reqProperty: path
like: /unset-response-header
actions:
- type: unset
respHeader: x-header1
# Example: Multi-action on response header
- name: multi-action-response-header-rule
when:
reqProperty: path
like: /multi-action-response-header
actions:
- type: set
respHeader: x-resp-header-1
value: value-set-by-resp-rule-1
- type: set
respHeader: x-resp-header-2
value: value-set-by-resp-rule-2
Acciones
En la tabla siguiente se explican las acciones disponibles.
Selectores de origen origin-selectors
AEM Puede aprovechar la CDN de la para enrutar el tráfico a diferentes backends, incluidas las aplicaciones que no sean de Adobe (tal vez por ruta o subdominio).
Ejemplo de configuración:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
originSelectors:
rules:
- name: example-com
when: { reqProperty: path, like: /proxy-me* }
action:
type: selectOrigin
originName: example-com
# useCache: false
origins:
- name: example-com
domain: www.example.com
# ip: '1.1.1.1'
# forwardHost: true
# forwardCookie: true
# forwardAuthorization: true
# timeout: 20
Acciones
La acción disponible se explica en la tabla siguiente.
Orígenes
Las conexiones a orígenes son solo SSL y utilizan el puerto 443.
Redirecciones del lado del cliente client-side-redirectors
aemcs-cdn-config-adopter@adobe.com
y describa su caso de uso.Puede utilizar reglas de redireccionamiento del lado del cliente para redirecciones del lado del cliente 301, 302 y similares. Si una regla coincide, la CDN responde con una línea de estado que incluye el código y el mensaje de estado (por ejemplo, HTTP/1.1 301 Movido permanentemente), así como el conjunto de encabezado de ubicación.
Se permiten ubicaciones absolutas y relativas con valores fijos.
Tenga en cuenta que el tamaño acumulado del archivo de configuración, incluidas las reglas de filtro de tráfico, no puede superar los 100 KB.
Ejemplo de configuración:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
experimental_redirects:
rules:
- name: redirect-absolute
when: { reqProperty: path, equals: "/page.html" }
action:
type: redirect
status: 301
location: https://example.com/page
- name: redirect-relative
when: { reqProperty: path, equals: "/anotherpage.html" }
action:
type: redirect
location: /anotherpage