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-aor 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 |
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 |
|
| 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 |
|
| 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: | Não aplicável |
| Os caracteres curinga |
| $raw_uri ou $uri |
Nome do arquivo | basename | O nome do arquivo solicitado pelo cliente. Por exemplo: name1. | Não aplicável |
| Os caracteres curinga |
| - |
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: | Não aplicável |
| Os caracteres curinga |
| - |
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 | Não aplicável |
| O host da solicitação do cliente. É possível inserir vários valores. |
| $host ou $http_host |
Endereço IP do cliente | clientip | O endereço IP do cliente. São suportados IPv4 (por exemplo, |
Nota Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP. |
| 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. |
Nota Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP. |
|
| Não aplicável | - |
Provedor de serviços de Internet (ISP) | geolocation | O ISP ao qual o endereço IP do cliente pertence. |
Nota Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP. |
| 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. |
Nota Para mais informações sobre IP de conexão POP e IP XFF, consulte Modo de verificação de endereço IP. |
| 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. |
| Os caracteres curinga |
| $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. |
| É possível inserir vários valores. |
| $http_{name} |
Cookie | cookie | O cookie na solicitação do cliente. | Insira o nome do cookie. |
| Os caracteres curinga |
| $cookie_{name} |
User-Agent | useragent | O cabeçalho | Não aplicável |
| Selecione um valor na lista suspensa ou insira um valor de User-Agent, como |
| $http_user_agent |
Intervalo percentual | range | Corresponde a uma porcentagem especificada das solicitações do cliente. | Não aplicável |
| 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 |
| 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 |
| É 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çãohttps://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ãotxt. 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 caminhodataem qualquer subdiretório sob/api/..??: Corresponde a todas as extensões de arquivo de dois caracteres, como.jse.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.
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 |
| A condição é atendida apenas quando a variável é exatamente igual ou diferente do valor de correspondência especificado. |
diferente de |
| |
existe |
| A condição é atendida dependendo da existência da variável especificada na solicitação. |
não existe |
| |
contém qualquer |
| 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:
|
não contém nenhum |
| |
maior que |
| Ou seja, |
menor que |
| Ou seja, |
maior ou igual a |
| Ou seja, |
menor ou igual a |
| Ou seja, |
correspondência de expressão regular |
| 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 |
|
Caracteres curinga
|
Caractere curinga |
Descrição |
Exemplo de correspondência de caminho |
|
|
Corresponde a qualquer caractere único. |
|
|
|
Corresponde a zero ou mais caracteres. |
|
Recursos que podem referenciar regras
|
Categoria do recurso |
Nome do recurso |
|
Configuração de busca de origem |
|
|
Cabeçalhos de solicitação HTTP de origem |
|
|
Cabeçalhos de resposta HTTP de origem |
|
|
Configuração de cache |
|
Procedimento
Faça login no DCDN console.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, localize o nome de domínio que deseja gerenciar e clique em Configure na coluna Actions.
No painel de navegação à esquerda do nome de domínio alvo, clique em Rules Engine.
Clique em Create Rule.
Na página Create Rule, defina o Rule Name e o Rule Content.
Clique em Submit para concluir a configuração.