Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Rules engine

Última atualização: Jun 29, 2026

O mecanismo de regras oferece uma interface gráfica que simplifica a configuração de regras. Configure regras para identificar solicitações de usuários com base nos parâmetros transportados e determinar se uma configuração específica se aplica a essas solicitações. Esse método proporciona maior flexibilidade e precisão no gerenciamento das configurações e políticas definidas no Dynamic Content Delivery Network (DCDN).

Informações básicas

O console do CDNDCDN fornece diversos recursos básicos, como configuração de tempo de vida (TTL) e reescrita de parâmetros de back-to-origin.

No entanto, alguns requisitos exigem configurações avançadas. Por exemplo, talvez seja necessário rotear solicitações que contenham o caminho /example para um servidor de origem específico. Nesse caso, combine os recursos básicos com o mecanismo de regras para personalizar as configurações. Além disso, o CDNDCDN disponibiliza o EdgeRoutine, que permite alta flexibilidade.

Capacidade de configuração

Recursos básicos

Recursos básicos + mecanismo de regras

Funções de borda

Implementação

Configurações gerais

Configurações flexíveis

Configurações altamente flexíveis

Cenários

Requisitos comuns

Requisitos personalizados avançados

Requisitos totalmente personalizados

Nível de dificuldade (Proficiência técnica do usuário)

Baixo

Médio

Alto

Flexibilidade de configuração

Baixa

Média

Alta

Limitações

  • Limite máximo de 50 condições de regra por nome de domínio.

  • Cada condição de regra pode conter até 20 sub-regras.

  • Os operadores de correspondência ou não correspondência de expressão regular não estão disponíveis ao configurar condições de regra no console ou via OpenAPI. Contudo, é possível visualizar configurações existentes que utilizam esses operadores. Para usá-los, utilize o ESA.

  • Uma única condição de regra pode ser referenciada no máximo cinco vezes em todos os recursos de um mesmo nome de domínio.

  • O aninhamento de condições de regra suporta até três níveis de profundidade; cada nível pode ter relações lógicas independentes.

  • Quando um recurso, como definição de tempo de expiração de cache ou modificação de cabeçalhos de solicitação de saída, referencia uma condição de regra, a prioridade da condição determina a ordem de execução, e não a ordem de configuração do recurso.

  • Os limites mencionados acima (50 condições de regra, 20 sub-regras, 3 níveis de aninhamento e 5 referências) são rígidos e não podem ser aumentados mediante solicitação.

  • Cada condição aceita no máximo 32 valores de correspondência para tipos como IP do cliente, URI, extensão de arquivo, nome de arquivo e User-Agent. Se você possuir uma lista de permissões de IP de cliente extensa, consolide vários endereços IP em blocos CIDR (por exemplo, 120.209.XXX.X/24) para economizar a cota de valores de correspondência.

  • O limite máximo é de 32 valores de correspondência para User-Agent. Valores que excedem esse limite são ignorados. Para corresponder a um grande número de User-Agents, utilize um caractere curinga (*) para consolidar valores semelhantes (por exemplo, *Chrome* corresponde a todas as versões do navegador Chrome) ou use o EdgeScript para obter uma lógica de correspondência mais flexível.

Sintaxe da condição de regra

Uma condição de regra combina uma ou mais expressões condicionais por meio de operadores lógicos. As seções a seguir descrevem a sintaxe.

Operadores lógicos

Os operadores lógicos avaliam condições no mesmo nível, incluindo conjuntos de condições aninhadas. Os operadores suportados são and e or.

  • and: Operador lógico E. A correspondência só é bem-sucedida se todas as condições forem verdadeiras.

  • or: Operador lógico OU. A correspondência é bem-sucedida se pelo menos uma condição for verdadeira. Por exemplo, configure várias condições de regra para o mesmo cabeçalho de resposta a fim de adicionar o cabeçalho em circunstâncias diferentes. Exemplo: Se a URI contiver /path-a or a URI contiver /path-b, o sistema adiciona o cabeçalho de resposta.

Parâmetros de uma expressão condicional

A expressão condicional, unidade mais granular de uma regra, inclui os seguintes parâmetros:

Parâmetro

Functions for domain name configuration parâmetro da função

Descrição

Obrigatório

Correspondência condicional

match

Especifica a expressão de correspondência condicional.

Sim

Operador lógico

logic

Define o operador lógico para a expressão de correspondência condicional. Os valores válidos são and e or.

Sim

Critérios

criteria

Indica o array de expressões condicionais a serem avaliadas.

Sim

Tipo de correspondência

MatchType

Determina o tipo de informação na solicitação do cliente a ser correspondido.

Sim

Objeto de correspondência

MatchObject

Refina ainda mais o tipo de correspondência. Por exemplo, um endereço IP de cliente pode ser especificado como IP de conexão POP ou IP XFF.

Não

Operador de correspondência

MatchOperator

Define a comparação a ser realizada.

Sim

Valor de correspondência

MatchValue

O valor a ser comparado com os dados da solicitação do cliente.

Sim

Negar condição

negate

Indica se o resultado da expressão condicional deve ser negado. Os valores válidos são true e false.

Sim

Sensibilidade a maiúsculas e minúsculas

caseSensitive

Define se o valor de correspondência diferencia maiúsculas de minúsculas.

Não

Nome da condição de regra

name

Especifica o nome da condição de regra.

Sim

Status

status

Define o status da condição de regra.

Sim

Configuração da expressão condicional

Tipo de correspondência

Functions for domain name configuration parâmetro da função

Descrição

Objeto de correspondência

Operador de correspondência

Valor de correspondência

Sensibilidade a maiúsculas e minúsculas

Variável Nginx

Protocolo

scheme

O protocolo usado pela solicitação do cliente, como HTTP ou HTTPS.

Não aplicável

  • igual a

  • diferente de

  • http

  • https

Não aplicável

$scheme

Método de solicitação

method

O método usado na solicitação do cliente, como GET ou PUT.

Não aplicável

  • igual a

  • diferente de

  • get

  • put

  • post

  • delete

  • head

Não aplicável

$request_method

URI (caminho)

uri

O caminho na URL da solicitação do cliente, excluindo quaisquer parâmetros de solicitação. Por exemplo: /favicon.ico.

Não aplicável

  • contém qualquer

  • não contém nenhum

Os caracteres curinga ? e são suportados. Por exemplo, insira //my_path/*. Vários valores são aceitos.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$raw_uri ou $uri

Nome do arquivo

basename

O nome do arquivo solicitado pelo cliente. Por exemplo: name1.

Não aplicável

  • contém qualquer

  • não contém nenhum

Os caracteres curinga ? e * são suportados. É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

-

Extensão de arquivo

extension

A extensão do arquivo solicitado pelo cliente. O sistema identifica a extensão como a substring do último ponto (.) até o final do nome do arquivo. Por exemplo: .mp4.

Não aplicável

  • contém qualquer

  • não contém nenhum

Os caracteres curinga ? e * são suportados. É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

-

Nome do host

hostname

O nome do host proveniente da solicitação do cliente. Ordem de correspondência: host na URL da solicitação > host no cabeçalho de solicitação Host.

Não aplicável

  • contém qualquer

  • não contém nenhum

O host da solicitação do cliente. É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$host ou $http_host

Endereço IP do cliente

clientip

O endereço IP do cliente. São suportados IPv4 (por exemplo, 1.1.X.X), IPv6 (por exemplo, 240e:95c:3004:2:3:0:0:XXX) e blocos CIDR (por exemplo, 20.209.XXX.XXX/31).

  • IP de conexão POP

  • IP XFF

Nota

Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP.

  • contém qualquer

  • não contém nenhum

Endereços IPv6, como 240e:XXX:3004:2:3:0:0:3f7, e blocos CIDR, como 120.209.XXX.XXX/31, são suportados. É possível inserir vários valores.

Não aplicável

$remote_addr

Versão do IP do cliente

clientipVer

A versão do IP do endereço do cliente: IPv4 ou IPv6.

  • IP de conexão POP

  • IP XFF

Nota

Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP.

  • igual a

  • diferente de

  • v4

  • v6

Não aplicável

-

Provedor de serviços de Internet (ISP)

geolocation

O ISP ao qual o endereço IP do cliente pertence.

  • IP de conexão POP

  • IP XFF

Nota

Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP.

  • contém qualquer

  • não contém nenhum

Selecione um ISP na lista suspensa ou digite caracteres para filtrar as opções. A pesquisa aproximada por ID ou nome é suportada. É possível inserir vários valores.

Não aplicável

$ip_isp_id

Geolocalização do IP

geolocation

A localização geográfica do endereço IP do cliente.

  • IP de conexão POP

  • IP XFF

Nota

Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP.

  • contém qualquer

  • não contém nenhum

Selecione uma localização na lista suspensa ou digite caracteres para filtrar as opções. A pesquisa aproximada por ID ou nome é suportada. É possível inserir vários valores.

Não aplicável

$ip_country_id

Parâmetro de solicitação

querystring

Um parâmetro na URL da solicitação.

Insira o nome do parâmetro.

  • existe

  • não existe

  • contém qualquer

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

Os caracteres curinga ? e * são suportados. É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$arg_{name}

Cabeçalho de solicitação

header

Um cabeçalho na solicitação do cliente.

Insira um nome de parâmetro ou selecione um parâmetro na lista suspensa.

  • existe

  • não existe

  • contém qualquer

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$http_{name}

Cookie

cookie

O cookie na solicitação do cliente.

Insira o nome do cookie.

  • existe

  • não existe

  • contém qualquer

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

Os caracteres curinga ? e * são suportados. É possível inserir vários valores.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$cookie_{name}

User-Agent

useragent

O cabeçalho User-Agent na solicitação do cliente.

Não aplicável

  • contém qualquer

  • não contém nenhum

Selecione um valor na lista suspensa ou insira um valor de User-Agent, como Chrome/25. Os caracteres curinga ? e * são suportados. É possível inserir vários valores. O limite máximo é de 32 valores de User-Agent configuráveis. Se esse limite for excedido, a configuração não terá efeito.

  • Diferencia maiúsculas de minúsculas

  • Não diferencia maiúsculas de minúsculas

$http_user_agent

Intervalo percentual

range

Corresponde a uma porcentagem especificada das solicitações do cliente.

Não aplicável

  • igual a

  • diferente de

Insira um valor percentual.

Não aplicável

-

Hora

time

O momento em que a solicitação do cliente ocorre. A hora está no fuso UTC+8. Por exemplo, 09:10~14:22.

Não aplicável

  • contém qualquer

  • não contém nenhum

Insira um intervalo de tempo, como 09:10~14:22, que representa o período das 09:10 às 14:22.

Não aplicável

-

Variável Nginx

ngxvar

Utilize variáveis Nginx caso as variáveis anteriores não atendam aos seus requisitos. Para obter uma lista das variáveis suportadas, consulte a documentação oficial do Nginx.

Selecione uma variável na lista suspensa ou insira um nome de variável. A concatenação é suportada, como em $region:$isp.

  • existe

  • não existe

  • contém qualquer

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

É possível inserir vários valores.

Não aplicável

${name}

Observações comuns de configuração para expressões condicionais

  • Ponto inicial da correspondência de URI (caminho): Na correspondência de URI, o valor corresponde à parte do caminho que começa com a primeira / após o nome do domínio. Esse valor não inclui o nome do domínio nem os parâmetros de solicitação. Para a solicitação https://example.com/path/file.html?key=value, o valor a ser correspondido é /path/file.html. O valor de correspondência deve começar com /.

  • Formato de correspondência de extensão de arquivo: Ao configurar uma correspondência de extensão de arquivo, o valor deve incluir um ponto (.). Por exemplo, para corresponder a arquivos .txt, insira .txt, e não txt. Caso contrário, a correspondência poderá falhar.

  • Exemplos de uso de caracteres curinga: As correspondências de URI e extensão de arquivo suportam os caracteres curinga ? (corresponde a um único caractere) e * (corresponde a zero ou mais caracteres). Exemplos comuns:

    • /*.pdf: Corresponde a todos os arquivos PDF no diretório raiz.

    • /api/*/data: Corresponde ao caminho data em qualquer subdiretório sob /api/.

    • .??: Corresponde a todas as extensões de arquivo de dois caracteres, como .js e .ts.

Modo de verificação de endereço IP

O mecanismo de regras oferece dois modos de verificação de endereço IP. O modo selecionado afeta a forma como os nós do CDNDCDN identificam o endereço IP do cliente:

  • IP de conexão POP: Este modo corresponde ao endereço IP que o cliente usa para se conectar a um nó do CDNDCDN. Se houver um servidor proxy entre o cliente e o nó do CDNDCDN, o IP de conexão POP será o endereço IP do servidor proxy.

  • IP XFF: Este modo corresponde ao endereço IP mais à esquerda no cabeçalho de solicitação x-forwarded-for. O IP XFF é sempre o endereço IP real do cliente, independentemente do uso de um servidor proxy entre o cliente e o nó do CDNDCDN.

A escolha do modo de verificação depende se a solicitação do cliente passa por um servidor proxy antes de chegar a um nó do CDNDCDN.

Observe que o local em um nó do CDNDCDN onde um recurso entra em vigor também influencia o modo de verificação de IP. Para recursos relacionados a configurações de origem que entram em vigor em nós L2, os nós L1 pelos quais a solicitação passa são considerados servidores proxy intermediários.

Exemplo: Suponha que o endereço IP real do cliente seja 10.10.10.10 e o endereço IP do servidor proxy seja 192.168.0.1.

  • Sem servidor proxy:

    • O valor do cabeçalho de solicitação x-forwarded-for é 10.10.10.10.

    • O endereço IP real do cliente (o IP mais à esquerda no cabeçalho x-forwarded-for) = O endereço IP usado para estabelecer a conexão entre o cliente e o nó do CDNDCDN = 10.10.10.10.

  • Com servidor proxy:

    • O valor do cabeçalho de solicitação x-forwarded-for é 10.10.10.10,192.168.0.1.

    • O endereço IP real do cliente (o endereço IP mais à esquerda no cabeçalho x-forwarded-for) é 10.10.10.10.

    • IP de conexão do cliente ao nó do CDNDCDN = IP do servidor proxy = 192.168.0.1.

    • O endereço IP real do cliente (o primeiro endereço IP da esquerda no cabeçalho x-forwarded-for) ≠ o endereço IP da conexão do cliente ao nó do CDNDCDN.

Nota

Alguns provedores de serviços de Internet (ISPs) em regiões específicas podem atribuir endereços IP privados aos usuários finais. Como resultado, os nós podem receber o endereço IP privado de um usuário.

Os endereços IP privados dividem-se em três faixas:

  • Endereço IP privado Classe A: 10.0.0.0 a 10.255.255.255, máscara de sub-rede: 10.0.0.0/8

  • Endereço IP privado Classe B: 172.16.0.0 a 172.31.255.255, máscara de sub-rede: 172.16.0.0/12

  • Endereço IP privado Classe C: 192.168.0.0 a 192.168.255.255, máscara de sub-rede: 192.168.0.0/16

Operadores de correspondência (matchOperator)

Operador

condition parâmetro da função

Descrição

igual a

matchOperator definido como equals.

A condição é atendida apenas quando a variável é exatamente igual ou diferente do valor de correspondência especificado.

diferente de

matchOperator definido como equals, e o parâmetro negate definido como true.

existe

matchOperator definido como exists.

A condição é atendida dependendo da existência da variável especificada na solicitação.

não existe

matchOperator definido como exists, e o parâmetro negate definido como true.

contém qualquer

matchOperator definido como contains.

A condição é atendida se a variável contiver (ou não contiver) qualquer um dos valores de correspondência especificados. O limite máximo é de 32 valores de correspondência.

Dois tipos de correspondência de conteúdo são suportados:

  • Correspondência exata: A variável deve corresponder exatamente ao valor especificado. Por exemplo, se o valor for a, a variável também deve ser a.

  • Correspondência com curinga: Use como caractere curinga. Os padrões suportados incluem a, a e a*. Estes correspondem a abc, bca e bcabc, respectivamente.

não contém nenhum

matchOperator definido como contains, e o parâmetro negate definido como true.

maior que

matchOperator definido como gt.

Ou seja, >

menor que

matchOperator definido como lt.

Ou seja, <

maior ou igual a

matchOperator definido como ge.

Ou seja, >=

menor ou igual a

matchOperator definido como le.

Ou seja, <=

correspondência de expressão regular

matchOperator definido como regex.

Corresponde à variável usando uma expressão regular.

Nota

Ao configurar regras no console ou via OpenAPI, não é possível usar esses operadores de expressão regular. No entanto, você pode visualizar configurações existentes. Para utilizar operadores de correspondência relacionados a expressões regulares, abra um ticket ou utilize o Edge Security Acceleration (ESA).

não correspondência de expressão regular

matchOperator definido como regex, e o parâmetro negate definido como true.

Caracteres curinga

Caractere curinga

Descrição

Exemplo de correspondência de caminho

?

Corresponde a qualquer caractere único.

/img/?.png corresponde a recursos com nome de arquivo de um único caractere, como /img/a.png e /img/b.png.

*

Corresponde a zero ou mais caracteres.

/api/* corresponde a todos os caminhos sob /api/, como /api/v1/users e /api/v2/products. /static/*.css corresponde a todos os arquivos CSS no diretório /static/.

Recursos que podem referenciar regras

Categoria do recurso

Nome do recurso

Configuração de busca de origem

Especificar host de origem

Modificar cabeçalhos de solicitação de entrada

Cabeçalhos de solicitação HTTP de origem

Cabeçalhos de resposta HTTP de origem

Configuração de cache

Criar Tempo de vida para cache

Configurar cabeçalhos de resposta de saída

Chave de cache personalizada

Procedimento

  1. Faça login no DCDN console.

  2. No painel de navegação à esquerda, clique em Domain Names.

  3. Na página Domain Names, localize o nome de domínio que deseja gerenciar e clique em Configure na coluna Actions.

  4. No painel de navegação à esquerda do nome de domínio alvo, clique em Rules Engine.

  5. Clique em Create Rule.

  6. Na página Create Rule, defina o Rule Name e o Rule Content.

  7. Clique em Submit para concluir a configuração.