El motor de reglas le permite usar la misma sintaxis y lógica para crear y desplegar diversas reglas, como reglas de caché, de redirección, de compresión, de origen y de protección de Web Application Firewall (WAF).
Descripción general
Con el motor de reglas de Edge Security Acceleration (ESA), puede crear reglas mediante una GUI. ESA comprueba si debe aplicar una configuración específica a las solicitudes entrantes según los parámetros de solicitud definidos en las reglas. Esto proporciona un control más flexible y preciso sobre la distribución de contenido.
Prioridades de las reglas
Las reglas de un aspecto específico (como el TTL de la caché del navegador) tienen prioridad sobre la configuración global de ese aspecto.
Si un aspecto específico (como la caché) cuenta con una lista de reglas, estas se aplican en secuencia de arriba hacia abajo. Para modificar la prioridad de una regla concreta, cambie su posición dentro de la lista.
Notas de uso
Una condición de regla individual no puede superar los 4 KB de tamaño. El tamaño total de toda la información de configuración de un sitio web, excepto la configuración de seguridad, no puede exceder los 512 KB.
Una condición de regla admite una estructura anidada con una profundidad máxima de dos niveles. Cada nivel permite configurar operaciones lógicas independientes.
Una condición de regla individual puede contener hasta 20 campos de coincidencia.
Descripción del parámetro Apply to
When you create a rule, the following options are available for the Apply to parameter:- All Requests: The created rule applies to all traffic on the website.
- Filtered Requests: The created rule applies only to traffic that matches the custom expression. You can select this option to accurately filter requests.
Sintaxis de las reglas
Una condición de regla se compone de expressions y un logical operator.
Expresión: se utiliza para filtrar solicitudes con características específicas.
Operador lógico: se utiliza para combinar varias expresiones.
Especifique varias expresiones y combínelas para filtrar solicitudes según los requisitos de su negocio.
Operadores lógicos
Un operador lógico conecta las expresiones de una condición de regla para ejecutar una operación lógica. A continuación se muestran los operadores lógicos compatibles:
and: la condición de regla coincide solo si todas sus expresiones son verdaderas.
or: la condición de regla coincide si alguna de sus expresiones es verdadera.
Expresiones
Una expresión simple contiene los parámetros que se describen en la siguiente tabla.
|
Parámetro |
Parámetro de sintaxis correspondiente |
Descripción |
Obligatorio |
|
Campo de coincidencia |
Field |
El campo de coincidencia. |
Sí |
|
Valor de coincidencia |
Value |
El valor de coincidencia. |
Sí |
|
Operador de comparación |
Comparison_operator |
El operador de comparación. |
Sí |
Sintaxis de las expresiones
-
Expresiones simples
Sintaxis: <field><comparison_operator><value>
Ejemplo: http.request.uri.path matches"/image\.(jpg|png)$"
-
Expresiones compuestas
Definición: varias expresiones conectadas por operadores lógicos
Sintaxis: <expreesion><logical_operator><expression>
Ejemplo: http.host eq "www.example.com" and http.request.uri.path eq "/content"
Campos de coincidencia
El campo de coincidencia del nombre de host (http.host) aplica a las reglas de cifrado SSL/TLS y solo admite los operadores equals y does not equal.
Algunos proveedores de servicios de Internet (ISP) pueden asignar direcciones IP privadas a los clientes de ciertas regiones. En este caso, los POP no determinan con precisión el país o región, la dirección IP de origen, la provincia ni el ISP del cliente, ya que las solicitudes recibidas provienen de una dirección IP privada. Para obtener más información, consulte Identify private CIDR block
|
Campo de coincidencia |
Descripción |
Nombre de variable en la expresión |
Operador de comparación compatible |
Valor de coincidencia |
|
Request Method |
El método que utiliza la solicitud. |
http.request.method |
|
Valores válidos:
|
|
HTTP Version |
La versión HTTP que utiliza la solicitud. |
http.request.version |
Valores válidos:
|
|
|
Country/Region |
El país o la región a la que pertenece la dirección IP del cliente. |
ip.geoip.country |
|
|
|
File Name |
El nombre del archivo que solicita el cliente. |
http.request.uri.path.file_name |
|
|
|
File Extension |
El sufijo del nombre del archivo que solicita el cliente. |
http.request.uri.path.extension |
|
|
|
IP Source Address |
La dirección IP del cliente. |
ip.src |
|
|
|
SSL/HTTPS |
El tipo de protocolo que utiliza la solicitud. |
http.request.scheme |
|
Valores válidos:
|
|
Hostname |
El nombre de host que contiene la solicitud. Orden de coincidencia: si hay nombres de host tanto en la URL como en el encabezado HOST, se utiliza el nombre de host de la URL de la solicitud. |
http.host |
|
|
|
URI |
La ruta en la URL de la solicitud. El valor incluye los parámetros de la solicitud. |
http.request.uri |
|
|
|
URI Full |
El identificador uniforme de recursos (URI) completo de la solicitud. |
http.request.full_uri |
|
|
|
URI Path |
La ruta en la URL de la solicitud. El valor excluye los parámetros de la solicitud. |
http.request.uri.path |
|
|
|
URI Query String |
Todos los parámetros de la solicitud en la URL de la solicitud. |
http.request.uri.query |
|
|
|
URI Query String Parameter |
Los parámetros de consulta especificados en la URL de la solicitud. |
http.request.uri.args["session"] |
|
|
|
Cookie |
La cookie que contiene la solicitud. |
http.cookie |
|
|
|
User Agent |
La información del cliente que contiene la solicitud. |
http.user_agent |
|
|
|
Referer |
La URL de la página web original desde la que se solicita el recurso. |
http.referer |
|
|
|
X-Forwarded-For |
El valor del encabezado X-Forwarded-For en la solicitud. |
http.x_forwarded_for |
|
|
|
Header |
El encabezado especificado en la solicitud. |
http.request.headers["session"] |
|
|
|
Cookie Value Of |
El parámetro de cookie especificado en la solicitud. |
http.request.cookies["session"] |
|
|
|
ISP |
El ISP al que pertenece la dirección IP del cliente. |
ip.src.isp |
|
Valores válidos:
|
|
IP Protocol Version |
La versión del protocolo de la dirección IP del cliente. |
ip.src.version |
|
Valores válidos:
|
|
Province |
La subdivisión administrativa de primer nivel de un país. |
ip.src.subdivision_1_iso_code |
|
|
|
Load Balancer Region |
La región donde reside el load balancer. |
ip.src.region_code |
|
|
|
Request Timestamp |
La marca de tiempo Unix que indica cuándo llega la solicitud al POP. |
http.request.timestamp.sec |
|
|
Operadores de comparación
|
Nombre del operador |
Operador |
Negable |
Tipo de valor |
Observaciones |
|
equals |
eq |
No |
string |
/ |
|
does not equal |
ne |
No |
string |
/ |
|
contains |
contains |
Sí |
string |
Este operador comprueba si se incluye la cadena especificada. |
|
matches regex |
matches |
Sí |
string |
Este operador busca coincidencias mediante expresiones regulares. Solo los planes Business y Enterprise admiten este operador. |
|
is in |
in |
Sí |
array |
La expresión es verdadera si coincide alguno de los elementos especificados.
|
|
starts with |
starts_with |
Sí |
string |
/ |
|
ends with |
ends_with |
Sí |
string |
/ |
|
length less than |
len-lt |
No |
integer |
Se encuentra una coincidencia si la longitud de la cadena es menor que la condición de longitud especificada. |
|
length equal to |
len-eq |
No |
integer |
Se encuentra una coincidencia si la longitud de la cadena es igual a la condición de longitud especificada. |
|
length greater than |
len-gt |
No |
integer |
Se encuentra una coincidencia si la longitud de la cadena es mayor que la condición de longitud especificada. |
|
in list |
in_list |
Sí |
integer |
Este operador se utiliza en listas globales creadas a nivel de cuenta. |
|
exists |
exists |
Sí |
bool |
Este operador comprueba si la clave especificada existe en los pares clave-valor. Por ejemplo, utilice este operador en reglas basadas en encabezados, cookies y cadenas de consulta. |
|
greater than |
gt |
No |
integer |
Este operador aplica a reglas cuyos valores son números enteros. |
|
smaller than |
lt |
No |
integer |
Este operador aplica a reglas cuyos valores son números enteros. |
|
greater than or equal to |
ge |
No |
integer |
Este operador aplica a reglas cuyos valores son números enteros. |
|
smaller than or equal to |
le |
No |
integer |
Este operador aplica a reglas cuyos valores son números enteros. |
Caracteres comodín
|
Carácter comodín |
Descripción |
|
|
Coincide con un solo carácter. |
|
|
Coincide con cualquier cantidad de caracteres. |
Crear expresiones
De forma predeterminada, se muestra el generador de expresiones para que cree las expresiones.
Usar el generador de expresiones
El generador de expresiones permite crear expresiones rápidamente de manera interactiva. Sin embargo, es posible que deba cambiar al editor de expresiones cuando cree expresiones complejas.
Por ejemplo, si desea crear una expresión basada en el método de la solicitud, seleccione los componentes de la expresión en las listas desplegables para que el generador cree la expresión automáticamente.

Usar el editor de expresiones
El editor de expresiones permite crear expresiones más complejas con mayor flexibilidad.
-
Haga clic en Edit Expression.

-
En el editor, introduzca las expresiones.
