Las funciones basadas en reglas se diferencian en tres características: la prioridad entre la configuración de reglas y la configuración global, la reentrancia y la granularidad de la configuración de reglas. Este tema explica cada característica e indica cuáles aplican a cada función basada en reglas.
Prioridad entre la configuración de reglas y la configuración global
-
La configuración de reglas tiene prioridad sobre la configuración global: para una misma función, la configuración de las reglas anula la configuración global. Aplique las configuraciones generales de forma global y utilice las reglas para personalizar el comportamiento de solicitudes específicas.
Por ejemplo, si establece el TTL perimetral en 12 horas en Global Configuration – Edge Cache TTL y configura el TTL de los recursos
/contenten 30 días dentro de Rules – Configure Edge Cache TTL, el nodo perimetral almacena en caché los recursos/contentdurante 30 días. Los recursos que no están bajo/contentusan el TTL global de 12 horas. -
Las reglas ubicadas más arriba en la lista tienen mayor prioridad: para un mismo tipo de regla, ESA ejecuta las reglas de arriba hacia abajo. Si una solicitud coincide con varias reglas, arrastre el botón
para reordenarlas por prioridad.NotaLas funciones disponibles y las cuotas de reglas varían según el plan. Rule and plan quotas.
A continuación se muestra un ejemplo con dos reglas de caché:
Regla 1: los recursos bajo la ruta
/contentcaducan después de 30 días.Regla 2: los archivos con el sufijo
.jpgse almacenan en caché durante 60 días.-
Cuando la regla 1 está por encima de la regla 2, los TTL de caché del nodo perimetral son los siguientes:
URL de ejemplo
Dentro de la ruta
/content****Sufijo
.jpgTiempo de expiración de la caché
https://example.com/content/static/pic.jpg
30 días
https://example.com/content/static/book.txt
30 días
https://example.com/static/pic.jpg
60 días
https://example.com/static/res/book.text
No almacenar en caché
-
Cuando la regla 2 está por encima de la regla 1, los TTL de caché del nodo perimetral son los siguientes:
URI de ejemplo
Dentro de la ruta
/content****Sufijo
.jpgTiempo de expiración de la caché
https://example.com/content/static/pic.jpg
60 días
https://example.com/content/static/book.txt
30 días
https://example.com/static/pic.jpg
60 días
https://example.com/static/res/book.text
No almacenar en caché
-
Reentrancia de las funciones basadas en reglas
La reentrancia de un módulo de función determina si este se puede invocar más de una vez mientras se procesa una sola solicitud. Las llamadas a un módulo de función reentrante no interfieren entre sí, y el resultado de cada llamada surte efecto.
Funciones reentrantes
Durante el procesamiento de una solicitud, una función reentrante se puede invocar varias veces. Estas llamadas no interfieren entre sí y el resultado de cada una surte efecto. Por ejemplo, la función Modify outbound request header es reentrante. Si una solicitud de cliente coincide con varias condiciones de regla, se ejecuta la configuración de cada condición coincidente.
Ejemplo 1: Modify outbound request header
Si una solicitud de usuario coincide tanto con la condición B como con la condición C, se ejecutan la configuración de regla 2 y la configuración de regla 3. También se ejecuta la configuración global, pero no surte efecto porque no tiene ninguna acción configurada. Como resultado, se agregan los dos encabezados de solicitud siguientes a la solicitud del usuario:
animal: catfruit: apple
|
Número de secuencia |
Configuración de regla |
Condición de regla |
Configuración de la función |
Ejecutado |
|
1 |
Configuración de regla 1 |
Condición A (no coincidente) |
Agregar un encabezado de solicitud cuyo nombre es |
No |
|
2 |
Configuración de regla 2 |
Condición B |
Agregar un encabezado de solicitud cuyo nombre es |
Sí |
|
3 |
Configuración de regla 3 |
Condición C |
Agregar un encabezado de solicitud cuyo nombre es |
Sí |
|
Configuración global |
Ninguna |
Ninguna |
Sí |
Funciones no reentrantes
Durante el procesamiento de una solicitud, una función no reentrante solo se puede invocar una vez. Una vez que termina la llamada, se sale del módulo de función correspondiente. Si una solicitud de cliente coincide con varias condiciones de regla, únicamente se ejecuta la primera configuración de regla coincidente.
Ejemplo 2: Rewrite URL
Si una solicitud de usuario coincide tanto con la condición B como con la condición C, solo se ejecuta la configuración de regla 2. Esta configuración tiene un número de secuencia menor, por lo que coincide primero con la condición B. Como resultado, la ruta de la URL de la solicitud del usuario se reescribe a /animal:
Solicitud original:
http://example.com/testSolicitud reescrita:
http://example.com/animal
|
Número de secuencia |
Configuración de regla |
Condición de regla |
Configuración de la función |
Ejecutado |
|
1 |
Configuración de regla 1 |
Condición A (no coincidente) |
Reescribir la ruta de la URL de la solicitud del usuario a |
No |
|
2 |
Configuración de regla 2 |
Condición B |
Reescribir la ruta de la URL de la solicitud del usuario a |
Sí |
|
3 |
Configuración de regla 3 |
Condición C |
Reescribir la ruta de la URL de la solicitud del usuario a |
No |
|
Configuración global |
Ninguna |
Ninguna |
No |
Granularidad de la configuración de reglas
La granularidad de la configuración de reglas abarca la dimensión de función y la dimensión de subfunción. Ambas dimensiones difieren en el comportamiento de un módulo de subfunción cuando su configuración se deja vacía.
Dimensión de función
En la dimensión de función, ninguna otra regla resuelve una configuración de subfunción vacía. Cuando una solicitud de usuario coincide con una condición de regla, un módulo de subfunción con configuración vacía se ejecuta como si no se hubiera agregado ninguna configuración. La regla aplica a todo el módulo de función y la configuración surte efecto en todo ese módulo.
Ejemplo 3: regla SSL/TLS (una función no reentrante cuya configuración de reglas surte efecto en la dimensión de función)
Suponga que una solicitud de usuario coincide tanto con la condición B como con la condición C. La configuración de regla 2 tiene un número de secuencia menor, por lo que coincide primero con la condición B y solo se ejecuta dicha configuración. Los ajustes marcados como - en la configuración de regla 2, como el conjunto de cifrado TLS, surten efecto según la configuración predeterminada.
|
Número de secuencia |
Configuración de regla |
Condición de regla |
Cifrado SSL/TLS |
Configuración del conjunto de cifrado y versión de protocolo TLS |
OCSP Stapling |
HTTP/2 |
HTTP/3 (QUIC) |
Ejecutado |
|
1 |
Configuración de regla 1 |
Condición A (no coincidente) |
Habilitado |
- |
Deshabilitado |
Deshabilitado |
Deshabilitado |
No |
|
2 |
Configuración de regla 2 |
Condición B |
Habilitado |
- |
Deshabilitado |
Deshabilitado |
Deshabilitado |
Sí |
|
3 |
Configuración de regla 3 |
Condición C |
Habilitado |
- |
Habilitado |
Habilitado |
Habilitado |
No |
|
Configuración global |
Ninguna |
Deshabilitado |
- |
Deshabilitado |
Habilitado |
Habilitado |
No |
Dimensión de subfunción
En la dimensión de subfunción, las reglas posteriores resuelven una configuración de subfunción vacía. Cuando una solicitud de usuario coincide con una condición de regla, un módulo de subfunción con configuración vacía sigue evaluando las condiciones de regla subsiguientes hasta encontrar una que tenga configuraciones de subfunción definidas. La regla aplica a un módulo de subfunción y la configuración surte efecto en ese módulo específico.
Ejemplo 4: regla de caché (una función no reentrante cuya configuración de reglas surte efecto en la dimensión de subfunción)
El siguiente ejemplo muestra la configuración de reglas de caché y amplía la lista de reglas a cinco configuraciones, desde la condición A hasta la condición E. Suponga que una solicitud de usuario coincide con la condición B, la condición C y la condición D. Las condiciones de regla se evalúan en orden ascendente según su número de secuencia, y los elementos de configuración no definidos se ejecutan con base en la configuración global predeterminada. Cada subfunción ocupa una columna independiente en la tabla siguiente y toma su valor de manera individual, tal como se observa en la fila Configuración final efectiva.
|
Número de secuencia |
Configuración de regla |
Condición de regla |
Elegibilidad para caché |
Tiempo de vida (TTL) de la caché del navegador |
Tiempo de vida (TTL) de la caché perimetral |
CacheKey personalizado |
Caché por puerto |
Respuestas de caché expiradas |
Cache Reserve |
|
1 |
Configuración de regla 1 |
Condición A (no coincidente) |
Elegible para caché |
- |
Respetar la política de caché del servidor de origen (si existe). De lo contrario, no almacenar en caché. |
- |
- |
Deshabilitado |
- |
|
2 |
Configuración de regla 2 |
Condición B |
Elegible para caché |
- |
Respetar la política de caché del servidor de origen (si existe). De lo contrario, no almacenar en caché. |
- |
- |
Deshabilitado |
- |
|
3 |
Configuración de regla 3 |
Condición C |
Omitir caché |
No almacenar en caché |
- |
- |
- |
- |
- |
|
4 |
Configuración de regla 4 |
Condición D |
Elegible para caché |
- |
Ignorar la política de caché del servidor de origen y usar un TTL de caché personalizado de 1 hora. |
Ignorar cadenas de consulta |
- |
Deshabilitado |
- |
|
5 |
Configuración de regla 5 |
Condición E |
Elegible para caché |
- |
- |
- |
- |
Deshabilitado |
- |
|
Configuración global |
Ninguna |
- |
- |
- |
- |
Deshabilitado de forma predeterminada |
- |
Deshabilitado de forma predeterminada |
|
|
Configuración final efectiva |
Elegible para caché |
No almacenar en caché |
Respetar la política de caché del servidor de origen (si existe). De lo contrario, no almacenar en caché. |
Ignorar cadenas de consulta |
Deshabilitado |
Deshabilitado |
Deshabilitado |
Características de las distintas funciones
La siguiente tabla enumera la reentrancia, la granularidad y la prioridad de la configuración de reglas de cada función basada en reglas, agrupadas por categoría de función.
|
Categoría de función |
Función basada en reglas |
Reentrancia |
Granularidad de la configuración de reglas |
Prioridad de la configuración de reglas |
|
SSL/TLS |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
Reglas de transformación |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
Reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
Redirección |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Caching |
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Optimización de contenido |
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
Optimización de red |
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Back-to-origin |
No reentrante |
Subfunción |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Gestión de configuración |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
Tráfico |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. El resultado también depende de si se estableció la acción End: si se estableció, la evaluación termina después de ejecutar la primera regla coincidente y no se realizan más coincidencias; si no se estableció y coinciden varias condiciones de regla, surte efecto la configuración de función de la última regla coincidente. |
||
|
Protección de seguridad |
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
|
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |
||
|
No reentrante |
Función |
Basada en los números de secuencia de la lista de reglas. Un número de secuencia menor indica una prioridad más alta. |