Os recursos baseados em regras diferem em três aspectos: prioridade entre configurações de regra e globais, reentrância e granularidade das configurações. Este tópico explica cada característica e especifica quais se aplicam a cada recurso baseado em regras.
Prioridade entre configurações de regra e configurações globais
Em um mesmo recurso, a prioridade das configurações de regra adicionadas refere-se à ordem de correspondência das regras. Ao adicionar uma configuração de regra, o sistema atribui um número de sequência na lista de regras. A correspondência ocorre em ordem crescente desse número.
-
Todo recurso baseado em regras contém configurações de regra e configurações globais. As configurações de regra sempre têm prioridade sobre as configurações globais. Se um recurso possuir ambos os tipos de configuração e uma solicitação de usuário corresponder a uma condição de regra, o sistema executará primeiro as configurações de regra. Caso nenhuma condição seja atendida, o sistema executará as configurações globais por último. Se as configurações globais estiverem vazias, o sistema aplicará as configurações padrão nos nós da ESA.
A tabela a seguir mostra a lista de regras de um recurso com três configurações de regra e configurações globais. Os exemplos neste tópico baseiam-se nesta lista.
|
Número de sequência |
Configuração de regra |
Condição de regra |
|
1 |
Configuração de regra 1 |
Condição A (não correspondida) |
|
2 |
Configuração de regra 2 |
Condição B |
|
3 |
Configuração de regra 3 |
Condição C |
|
Configurações globais |
Nenhuma |
|
|
Ordem de execução |
O sistema executa as configurações de regra em ordem crescente de número de sequência (1, depois 2, depois 3) e as configurações globais por último. |
Reentrância de recursos baseados em regras
A reentrância de um módulo de recurso determina se é possível chamar esse módulo mais de uma vez durante o processamento de uma única solicitação. Chamadas a um módulo de recurso reentrante não interferem entre si, e o resultado de cada chamada entra em vigor.
Recursos reentrantes
Durante o processamento de uma solicitação, é possível chamar um recurso reentrante várias vezes. Essas chamadas não interferem umas nas outras, e o resultado de cada uma entra em vigor. Por exemplo, o recurso Modifique outbound request header é reentrante. Se uma solicitação de cliente corresponder a múltiplas condições de regra, o sistema executará a configuração de regra de cada condição correspondente.
Exemplo 1: Modifique outbound request header
Se uma solicitação de usuário corresponder tanto à Condição B quanto à Condição C, o sistema executará a Configuração de regra 2 e a Configuração de regra 3. As configurações globais também são executadas, mas não surtem efeito porque nenhuma ação está configurada nelas. Como resultado, os dois cabeçalhos de solicitação a seguir são adicionados à solicitação do usuário:
animal: catfruit: apple
|
Número de sequência |
Configuração de regra |
Condição de regra |
Configuração do recurso |
Executado |
|
1 |
Configuração de regra 1 |
Condição A (não correspondida) |
Adicionar um cabeçalho de solicitação com nome |
Não |
|
2 |
Configuração de regra 2 |
Condição B |
Adicionar um cabeçalho de solicitação com nome animal e valor cat. |
Sim |
|
3 |
Configuração de regra 3 |
Condição C |
Adicionar um cabeçalho de solicitação com nome fruit e valor apple. |
Sim |
|
Configurações globais |
Nenhuma |
Nenhuma |
Sim |
Recursos não reentrantes
Durante o processamento de uma solicitação, o sistema chama um recurso não reentrante apenas uma vez e sai do módulo de recurso correspondente após o término da chamada. Se uma solicitação de cliente corresponder a múltiplas condições de regra, somente a primeira configuração de regra correspondente será executada.
Exemplo 2: Rewrite URL
Se uma solicitação de usuário corresponder tanto à Condição B quanto à Condição C, apenas a Configuração de regra 2 será executada. Como a Configuração de regra 2 possui um número de sequência menor, ela corresponde primeiro à Condição B. Consequentemente, o caminho da URL da solicitação do usuário é reescrito para /animal:
Solicitação original:
http://example.com/testSolicitação reescrita:
http://example.com/animal
|
Número de sequência |
Configuração de regra |
Condição de regra |
Configuração do recurso |
Executado |
|
1 |
Configuração de regra 1 |
Condição A (não correspondida) |
Reescrever o caminho da URL da solicitação do usuário para |
Não |
|
2 |
Configuração de regra 2 |
Condição B |
Reescrever o caminho da URL da solicitação do usuário para /animal. |
Sim |
|
3 |
Configuração de regra 3 |
Condição C |
Reescrever o caminho da URL da solicitação do usuário para |
Não |
|
Configurações globais |
Nenhuma |
Nenhuma |
Não |
Granularidade das configurações de regra
A granularidade das configurações de regra abrange a dimensão do recurso e a dimensão do sub-recurso. Essas duas dimensões diferem no comportamento de um módulo de sub-recurso quando suas configurações permanecem vazias.
Dimensão do recurso
Na dimensão do recurso, nenhuma outra regra resolve uma configuração de sub-recurso vazia: quando uma solicitação de usuário corresponde a uma condição de regra, um módulo de sub-recurso com configurações vazias é executado como se nenhuma configuração tivesse sido adicionada. A regra aplica-se a todo o módulo de recurso, e as configurações entram em vigor para o módulo inteiro.
Exemplo 3: Regra SSL/TLS (um recurso não reentrante cujas configurações de regra entram em vigor na dimensão do recurso)
Suponha que uma solicitação de usuário corresponda tanto à Condição B quanto à Condição C. A Configuração de regra 2 tem um número de sequência menor, portanto corresponde primeiro à Condição B, e apenas a Configuração de regra 2 é executada. Configurações mostradas como - na Configuração de regra 2, como o conjunto de cifras TLS, entram em vigor com base nas configurações padrão.
|
Número de sequência |
Configuração de regra |
Condição de regra |
Criptografia SSL/TLS |
Configurações de conjunto de cifras TLS e versão de protocolo |
OCSP Stapling |
HTTP/2 |
HTTP/3 (QUIC) |
Executado |
|
1 |
Configuração de regra 1 |
Condição A (não correspondida) |
Ativado |
- |
Desativado |
Desativado |
Desativado |
Não |
|
2 |
Configuração de regra 2 |
Condição B |
Ativado |
- |
Desativado |
Desativado |
Desativado |
Sim |
|
3 |
Configuração de regra 3 |
Condição C |
Ativado |
- |
Ativado |
Ativado |
Ativado |
Não |
|
Configurações globais |
Nenhuma |
Desativado |
- |
Desativado |
Ativado |
Ativado |
Não |
Dimensão do sub-recurso
Na dimensão do sub-recurso, regras subsequentes resolvem uma configuração de sub-recurso vazia: quando uma solicitação de usuário corresponde a uma condição de regra, um módulo de sub-recurso com configurações vazias continua a corresponder às condições de regra seguintes até encontrar uma condição cujas configurações de sub-recurso não estejam vazias. A regra aplica-se a um módulo de sub-recurso, e as configurações entram em vigor para esse módulo específico.
Exemplo 4: Regra de cache (um recurso não reentrante cujas configurações de regra entram em vigor na dimensão do sub-recurso)
O exemplo a seguir mostra configurações de regra de cache e estende a lista para cinco configurações, da Condição A à Condição E. Suponha que uma solicitação de usuário corresponda à Condição B, Condição C e Condição D. O sistema avalia as condições de regra em ordem crescente de número de sequência e executa itens de configuração não definidos com base nas configurações globais padrão. Cada sub-recurso ocupa uma coluna separada na tabela abaixo e assume seu valor independentemente, conforme mostrado na linha Configurações efetivas finais.
|
Número de sequência |
Configuração de regra |
Condição de regra |
Elegibilidade para cache |
Tempo de vida (TTL) do cache do navegador |
Tempo de vida (TTL) do cache de borda |
CacheKey personalizado |
Cache de porta |
Respostas expiradas em cache |
Cache Reserve |
|
1 |
Configuração de regra 1 |
Condição A (não correspondida) |
Elegível para cache |
- |
Respeitar a política de cache do servidor de origem (se houver). Caso contrário, não armazenar em cache. |
- |
- |
Desativado |
- |
|
2 |
Configuração de regra 2 |
Condição B |
Elegível para cache |
- |
Respeitar a política de cache do servidor de origem (se houver). Caso contrário, não armazenar em cache. |
- |
- |
Desativado |
- |
|
3 |
Configuração de regra 3 |
Condição C |
Ignorar cache |
Não armazenar em cache |
- |
- |
- |
- |
- |
|
4 |
Configuração de regra 4 |
Condição D |
Elegível para cache |
- |
Ignorar a política de cache do servidor de origem e usar um TTL de cache personalizado de 1 hora. |
Ignorar strings de consulta |
- |
Desativado |
- |
|
5 |
Configuração de regra 5 |
Condição E |
Elegível para cache |
- |
- |
- |
- |
Desativado |
- |
|
Configurações globais |
Nenhuma |
- |
- |
- |
- |
Desativado por padrão |
- |
Desativado por padrão |
|
|
Configurações efetivas finais |
Elegível para cache |
Não armazenar em cache |
Respeitar a política de cache do servidor de origem (se houver). Caso contrário, não armazenar em cache. |
Ignorar strings de consulta |
Desativado |
Desativado |
Desativado |
Características de diferentes recursos
A tabela a seguir lista a reentrância, a granularidade e a prioridade das configurações de regra de cada recurso baseado em regras, agrupadas por categoria de recurso.
|
Categoria de recurso |
Recurso baseado em regras |
Reentrância |
Granularidade das configurações de regra |
Prioridade das configurações de regra |
|
SSL/TLS |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Regras de transformação |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Redirecionamento |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Caching |
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Otimização de conteúdo |
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Otimização de rede |
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Back-to-origin |
Não reentrante |
Sub-recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Gerenciamento de configuração |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Tráfego |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. O resultado também depende da definição da ação End: se a ação End estiver definida, a correspondência termina após a execução da primeira regra correspondente e nenhuma correspondência adicional é realizada; se a ação End não estiver definida e múltiplas condições de regra forem correspondidas, a configuração de recurso da última regra correspondente entrará em vigor. |
||
|
Proteção de segurança |
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
|
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |
||
|
Não reentrante |
Recurso |
Baseada nos números de sequência na lista de regras. Um número menor indica maior prioridade. |