Para gerenciar o tráfego com eficiência, é fundamental compreender como as regras são aplicadas no Edge Security Acceleration (ESA). Este guia explica os três princípios essenciais das regras: prioridade de execução, comportamento da regra e escopo de configuração.
Prioridade de execução: de cima para baixo
O ESA processa as regras sequencialmente, de cima para baixo na lista de regras (com base no número ordinal: 1, 2, 3 e assim por diante).
Configurações de regras: O sistema verifica a requisição em relação à Regra 1. Se as condições não corresponderem, ele passa para a Regra 2 e assim sucessivamente.
Global Settings: Caso a requisição não corresponda a nenhuma das regras numeradas, o sistema aplica as Global Settings como padrão final.
Order | Rule | Condition |
1 | Rule 1 | Condition A (not matched) |
2 | Rule 2 | Condition B |
3 | Rule 3 | Condition C |
Global settings | None | |
Evaluation order | Rule 1 → Rule 2 → Rule 3 → Global Settings | |
Comportamento da regra: cumulativo versus terminação
Quando as condições de uma regra são atendidas, ela pode se comportar de duas maneiras: um recurso cumulativo permite que a regra aplique sua ação e, em seguida, o ESA continua a processar as regras subsequentes. Isso possibilita a aplicação de várias regras a uma única requisição.
Para ações cumulativas
O ESA aplica a regra associada a uma ação cumulativa e continua a processar as regras seguintes. Dessa forma, múltiplas regras podem atuar sobre a mesma requisição.
Exemplo: Modificar cabeçalhos de requisição de saída
Se uma requisição corresponder à Regra 2 e à Regra 3, ambas as ações serão executadas.
Resultado: A requisição final enviada à origem terá dois novos cabeçalhos: animal: cat e fruit: apple
Order | Rule | Condition | Action | Executed? |
1 | Rule 1 | Condition A (not matched) | Add header | No |
2 | Rule 2 | Condition B | Add header | Yes |
3 | Rule 3 | Condition C | Add header | Yes |
Global settings | None | None | Yes | |
Para ações de terminação
O ESA aplica a ação da regra e interrompe o processamento de quaisquer outras regras do mesmo tipo. Apenas a primeira regra correspondente entra em vigor.
Exemplo: Reescrever URL
Se uma requisição corresponder à Regra 2 e à Regra 3, somente a ação da Regra 2 será executada, pois é a primeira correspondência na sequência.
Resultado: O caminho da URL é reescrito para /animal, e a Regra 3 nunca é avaliada.
Order | Rule | Condition | Action | Executed? |
1 | Rule 1 | Condition A (not matched) | Rewrite the path of the request URL to | No |
2 | Rule 2 | Condition B | Rewrite the path of the request URL to | Yes |
3 | Rule 3 | Condition C | Rewrite the path of the request URL to | No |
Global settings | None | None | No | |
Escopo de configuração: nível de recurso versus nível de campo
Em recursos complexos, uma única regra pode conter vários campos de configuração. A forma como esses campos são aplicados depende do escopo do recurso.
Execução no nível de recurso
Ao encontrar uma regra correspondente, o sistema aplica todos os campos configurados nessa regra. A avaliação desse recurso é interrompida imediatamente e nenhuma outra regra é processada.
Se um campo não estiver configurado, o valor padrão será utilizado.
Exemplo: Regra SSL/TLS (terminação)
Se uma requisição corresponder à Regra 2 e à Regra 3, apenas a ação da Regra 2 será executada. Como o conjunto de cifras TLS não está configurado, as configurações padrão são usadas.
Order | Rule | Condition | SSL/TLS encryption | TLS cipher suite and protocol version | OCSP Stapling | HTTP/2 | HTTP/3 (QUIC) | Executed? |
1 | Rule 1 | Condition A (not matched) | Enabled | - | Disabled | Disabled | Disabled | No |
2 | Rule 2 | Condition B | Enabled | - | Disabled | Disabled | Disabled | Yes |
3 | Rule 3 | Condition C | Enabled | - | Enabled | Enabled | Enabled | No |
Global settings | None | Disabled | - | Disabled | Enabled | Enabled | No | |
Execução no nível de campo
Cada campo individual (ou configuração) é definido de forma independente pela regra de maior prioridade que o especifica.
Quando uma requisição de usuário corresponde a uma regra e os campos do recurso estão vazios, o ESA busca a primeira definição para cada um deles.
Exemplo: Regra de cache (terminação)
O ESA processa a lista de regras de cima para baixo para encontrar um valor para a primeira configuração (como Cache eligibility). Ele utiliza o valor da primeira regra correspondente que possui essa configuração definida e interrompe a busca para esse campo específico.
Em seguida, repete o processo para a segunda configuração (como Browser TTL), varrendo novamente a lista de regras desde o início para localizar a primeira regra correspondente que a define.
Esse ciclo continua até que todas as configurações do recurso tenham sido determinadas.
Order | Rule | Condition | Cache eligibility | Browser TTL | Edge TTL | Custom CacheKey | Port cache | Cache expired responses | Cache persistence |
1 | Rule 1 | Condition A (not matched) | Eligible | - | Honor the origin TTL (if any). Otherwise, do not cache. | - | - | Disabled | - |
2 | Rule 2 | Condition B | Eligible | - | Honor the origin TTL (if any). Otherwise, do not cache. | - | - | Disabled | - |
3 | Rule 3 | Condition C | Bypass cache | Do not cache | - | - | - | - | - |
4 | Rule 4 | Condition D | Eligible | - | Ignore the origin TTL and use a custom cache TTL of 1 hour | Ignore query strings | - | Disabled | - |
5 | Rule 5 | Condition E | Eligible | - | - | - | - | Disabled | - |
Global settings | None | - | - | - | - | Disabled by default | - | Disabled by default | |
Result | Eligible | Do not cache | Honor the origin TTL (if any). Otherwise, do not cache. | Ignore query strings | Disabled | Disabled | Disabled | ||
Resumo: comportamento da regra por recurso
Category | Feature | Behavior | Scope | Priority |
SSL/TLS | Terminating | Feature-level | Higher ordinal = lower priority | |
Terminating | Field-level | |||
Transform rules | Terminating | Feature-level | ||
Cumulative | Field-level | |||
Cumulative | Field-level | |||
Redirection | Terminating | Feature-level | ||
Cache | Terminating | Field-level | ||
Content optimization | Terminating | Field-level | ||
Terminating | Field-level | |||
Terminating | Field-level | |||
Network optimization | Terminating | Field-level | ||
Origin fetch | Terminating | Field-level | ||
Configuration management | Terminating | Feature-level | ||
Traffic | Terminating | Feature-level | ||
Terminating | Feature-level | Higher ordinal = lower priority. Take note of whether the End action is set:
| ||
Security | Terminating | Feature-level | Higher ordinal = lower priority | |
Terminating | Feature-level | |||
Terminating | Feature-level | |||
Terminating | Feature-level | |||
Terminating | Feature-level | |||
Terminating | Feature-level | |||
Terminating | Feature-level |