Todos os produtos
Search
Central de documentação

CDN:Mecanismo de regras

Última atualização: Sep 18, 2026

O mecanismo de regras fornece uma interface gráfica para configure regras condicionais. Essas regras analisam os parâmetros da solicitação do usuário para determinar se uma configuração específica se aplica, oferecendo controle flexível e preciso sobre a aplicação das políticas de configuração do CDN DCDN.

Contexto

O console do CDN DCDN da Alibaba Cloud oferece recursos básicos, como a configuração de expiração de cache e a reescrita de parâmetros de busca na origem, que atendem à maioria dos requisitos gerais. No entanto, para necessidades especiais, como buscar solicitações cujo caminho contenha /example a partir de um endereço de origem específico, use o mecanismo de regras para implementar configurações personalizadas. Além disso, o CDN DCDN da Alibaba Cloud fornece o recurso EdgeScript, que permite personalização altamente flexível.

Capacidades

Recursos básicos

Recursos básicos e mecanismo de regras

EdgeScript

Implementação do recurso

Configurações de uso geral

Permite crie regras de filtragem condicional por meio de uma interface gráfica. Suporta vários tipos de correspondência, como URI, Header, Cookie e Query String, além de combinações lógicas AND/OR.

Permite personalização altamente flexível e é adequado para cenários avançados que exigem scripts personalizados.

Cenários

Cenários de uso geral

Cenários personalizados avançados

Cenários totalmente personalizados

Facilidade de uso (habilidades técnicas necessárias)

Alta

Média

Baixa

Flexibilidade de configuração

Baixa

Média

Alta

Lógica complexa e EdgeScript

O mecanismo de regras suporta combinações lógicas básicas AND/OR, sendo adequado para a maioria dos cenários de filtragem condicional. No entanto, os cenários a seguir podem ajudar a decidir quando usar o EdgeScript:

  • Correspondência complexa de expressões regulares: O operador de expressão regular no mecanismo de regras vem desativado por padrão. Envie um ticket para solicitar a ativação. Se precisar usar expressões regulares com frequência, o EdgeScript suporta nativamente a correspondência de expressões regulares, o que é mais prático.

  • Combinações multidimensionais precisas: configure avaliações complexas com vários critérios, como a correspondência do IP do cliente e do User-Agent com expressões regulares (por exemplo, bloquear solicitações de um intervalo de IP específico em que o User-Agent contenha uma palavra-chave específica), é trabalhoso no mecanismo de regras. O EdgeScript permite combinar várias condições de forma flexível por meio de lógica de script.

  • Controle granular de acesso IP para vários diretórios: O EdgeScript permite conceder acesso a diferentes diretórios para distintos intervalos de endereços IP. Por exemplo, permita que um intervalo de endereços IP acesse todos os diretórios, que um endereço IP específico acesse apenas um diretório e negue todos os outros endereços IP. Use match_re para corresponder a endereços IP e caminhos de URI, return true para permitir a solicitação e exit(403) para negá-la.

Limitações

  • É possível crie no máximo 50 condições de regra por nome de domínio.

  • Cada condição de regra pode conter no máximo 20 sub-regras.

  • Não use operadores de correspondência ou não correspondência de expressão regular ao configure condições de regra no console ou na openapi. No entanto, é possível visualize configurações existentes que utilizam esses operadores. Para usá-los, utilize o ESA.

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

  • É possível aninhar condições de regra em até três níveis de profundidade, e cada nível pode ter suas próprias relações lógicas independentes.

  • Se um recurso, como defina o tempo de expiração de cache ou modifique cabeçalhos de solicitação de saída, referenciar uma condição de regra, a prioridade da condição determinará a ordem de execução, e não a ordem de configuração do recurso.

  • Os limites máximos de 50 condições de regra, 20 sub-regras e 3 níveis de aninhamento são rígidos e não admitem aumento mediante solicitação. Já o número total máximo de referências a condições de regra em todos os recursos de um único nome de domínio acelerado, que é 5 por padrão, admite aumento mediante solicitação.

    • Para aumentar o número total de vezes que as condições de regra podem ser referenciadas para um único nome de domínio (cinco por padrão), envie um ticket. Forneça as seguintes informações no ticket: o nome de domínio acelerado para o qual deseja aumentar o limite, o número-alvo de referências e uma descrição do seu cenário de negócios.

    • Ao adicionar outro nome de domínio acelerado, envie um ticket separado para aumentar o número de referências de condição de regra para esse domínio. O processo é o mesmo da primeira solicitação.

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

  • É possível configure no máximo 32 valores de correspondência de User-Agent. Os valores além desse limite são ignorados. Para corresponder a um grande número de User-Agents, use um curinga (*) para consolidar valores de User-Agent semelhantes. Por exemplo, *Chrome* corresponde a todas as versões do navegador Chrome, ou use o EdgeScript para uma lógica de correspondência mais flexível.

Prioridade de recursos e lógica de execução

Ao configure o mecanismo de regras, considere as seguintes prioridades de recursos e lógica de execução:

  • A proteção contra hotlink de Referer tem precedência sobre o mecanismo de regras: Quando uma solicitação inclui um cabeçalho Referer, o sistema primeiro a avalia em relação à lista de bloqueios e à lista de permissões de Referer. Se a solicitação corresponder à lista de permissões, ela poderá prosseguir, ignorando o mecanismo de regras. Se a solicitação não corresponder à lista de permissões, o sistema a bloqueará imediatamente. Se o cabeçalho Referer estiver vazio, a solicitação ignora essa lógica e o mecanismo de regras a avalia.

  • Ordem de execução para recursos que usam condições de regra: Quando recursos como Expiração de Cache ou Modificar Cabeçalho de Solicitação de Saída usam condições de regra, o sistema os executa com base na prioridade de suas condições de regra associadas, e não na ordem de configuração dos recursos. Por exemplo, se a Expiração de Cache e a Reescrita de Parâmetro de Busca na Origem usarem condições de regra com prioridades diferentes, o sistema as executará em ordem de prioridade da condição de regra, da mais alta para a mais baixa.

  • Resolução de conflitos entre autenticação de URL e cache: Se encontrar um comportamento inesperado após configure a autenticação de URL, como solicitações acessíveis sem parâmetros de autenticação ou links válidos sendo bloqueados incorretamente, verifique o seguinte em ordem:

    1. Verifique se há uma lista de permissões do WAF configurada. Uma lista de permissões do WAF pode ignorar a lógica de autenticação do CDN DCDN e permitir a passagem direta das solicitações.

    2. Verifique se o recurso Ignorar Parâmetros de URL não remove os parâmetros de autenticação, como auth_key. A configuração de ignorar parâmetros de URL filtra esses parâmetros e ignora a validação de autenticação para acertos de cache.

    3. confirme se a Regra de Chave de Cache não ignora o parâmetro de autenticação. Se ignorar, solicitações com parâmetros de autenticação diferentes podem receber o mesmo conteúdo em cache, o que ignora efetivamente a autenticação.

Sintaxe da condição de regra

Uma condição de regra combina uma ou mais expressões condicionais usando 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 (AND): Um operador lógico AND. A correspondência só é bem-sucedida se todas as condições forem verdadeiras.

  • or (OR): Um operador lógico OR. A correspondência é bem-sucedida se qualquer condição for verdadeira. Por exemplo, configure várias condições de regra para o mesmo cabeçalho de resposta permite adicionar o mesmo cabeçalho de resposta sob condições diferentes. Exemplo: Quando a URI contém /path-a or a URI contém /path-b , adicione o cabeçalho de resposta.

Parâmetros de uma expressão condicional

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

Parâmetro

Parâmetro de configuração correspondente na função condition para configuração de nome de domínio

Descrição

Obrigatório

Correspondência condicional

match

Especifica a expressão de correspondência condicional.

Sim

Operador lógico

logic

Especifica 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

Especifica a matriz de expressões condicionais a serem avaliadas.

Sim

Tipo de correspondência

MatchType

Especifica o tipo de informação em uma solicitação de cliente a ser correspondida.

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 um IP de conexão POP ou um IP XFF.

Não

Operador de correspondência

MatchOperator

Especifica 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

Especifica 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

Especifica o status da condição de regra.

Sim

Configuração de expressão condicional

Tipo de correspondência

Parâmetro de configuração correspondente na função condition para configuração de nome de domínio

Descrição

Objeto de correspondência

Operador de correspondência

Valor de correspondência

Sensibilidade a maiúsculas e minúsculas

Variável nginx/tengine correspondente

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

  • exclua

  • 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 um

  • não contém nenhum

Os curingas ? e são aceitos. Por exemplo, insira //my_path/*. Há suporte para vários valores.

  • 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 um

  • não contém nenhum

Os curingas ? e * são aceitos. É 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 um

  • não contém nenhum

Os curingas ? e * são aceitos. É 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 na 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 um

  • 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. Há suporte para 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 obter mais informações sobre o IP de conexão POP e o IP XFF, consulte .

  • contém qualquer um

  • não contém nenhum

Há suporte para endereços IPv6, como 240e:XXX:3004:2:3:0:0:3f7, e blocos CIDR, como 120.209.XXX.XXX/31. É 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 obter mais informações sobre o IP de conexão POP e o IP XFF, consulte .

  • igual a

  • diferente de

  • v4

  • v6

Não aplicável

-

Provedor de service de Internet (ISP)

geolocation

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

  • IP de conexão POP

  • IP XFF

Nota

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

  • contém qualquer um

  • não contém nenhum

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

Não aplicável

$ip_isp_id

Geolocalização de IP

geolocation

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

  • IP de conexão POP

  • IP XFF

Nota

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

  • contém qualquer um

  • não contém nenhum

Selecione uma localização na lista suspensa ou insira caracteres para filtrar as opções. Há suporte para pesquisa aproximada por ID ou nome. É 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 um

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

Os curingas ? e * são aceitos. É 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 um

  • 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 um

  • não contém nenhum

  • maior que

  • maior ou igual a

  • menor que

  • menor ou igual a

Os curingas ? e * são aceitos. É 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 User-Agent no cabeçalho da solicitação.

Não aplicável

  • contém qualquer um

  • não contém nenhum

Selecione um valor na lista suspensa ou insira um valor de User-Agent, como Chrome/25. Os curingas ? e * são aceitos. É possível inserir vários valores. É possível configure no máximo 32 valores de User-Agent. Se esse limite for excedido, a configuração não entrará em vigor.

  • Diferencia maiúsculas de minúsculas

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

$http_user_agent

Intervalo de porcentagem

range

Corresponde a uma porcentagem especificada de solicitações de cliente.

Não aplicável

  • igual a

  • diferente de

Insira um valor de porcentagem.

Não aplicável

-

Horário

time

O horário da solicitação do cliente, em UTC+8. Por exemplo, 09:10~14:22.

Não aplicável

  • contém qualquer um

  • 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

Use variáveis do Nginx se as variáveis anteriores não atenderem aos seus requisitos. Para obter uma lista de variáveis suportadas, consulte a documentação oficial do Nginx.

Selecione uma variável na lista suspensa ou insira um nome de variável. Há suporte para concatenação, como $region:$isp.

  • existe

  • não existe

  • contém qualquer um

  • 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}

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

  • Ponto inicial de correspondência de URI (caminho): Para correspondência de URI, o valor é a parte do caminho que começa com a primeira / no caminho após o nome de domínio e exclui o nome de domínio e os parâmetros de solicitação. Por exemplo, para a solicitação https://example.com/path/file.html?key=value, o valor de URI realmente correspondido é /path/file.html. O valor de correspondência deve começar com / .

  • Formato de correspondência de extensão de arquivo: Ao configure uma correspondência de extensão de arquivo, o valor de correspondência deve incluir um ponto (.). Por exemplo, para corresponder a arquivos .txt, insira .txt em vez de txt; caso contrário, a correspondência pode falhar.

  • Exemplos de uso de curingas: As correspondências de URI e extensão de arquivo suportam os curingas ? (corresponde a qualquer caractere único) e * (corresponde a qualquer número de caracteres). Exemplos comuns:

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

    • /api/*/data: corresponde a caminhos /api/ que contêm data em qualquer subcaminho.

    • .??: 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 fornece dois modos de verificação de endereço IP. O modo selecionado afeta a forma como os POPs do CDN DCDN identificam o endereço IP do cliente:

  • IP de conexão POP: Este modo corresponde ao endereço IP que um cliente usa para se conectar a um POP do CDN DCDN. Se o tráfego entre o cliente e o POP do CDN DCDN passar por um servidor proxy, 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. Independentemente do uso de um servidor proxy entre o cliente e o POP do CDN DCDN, o IP XFF é sempre o endereço IP real do cliente.

A escolha do modo de verificação depende de se uma solicitação de cliente passa por um servidor proxy antes de chegar a um POP do CDN DCDN.

Observe que o local em um POP do CDN DCDN onde um recurso referenciado por uma condição de regra entra em vigor também afeta a escolha do modo de verificação de endereço IP. Para recursos de busca na origem que entram em vigor em POPs L2, o POP L1 pelo qual a solicitação do usuário passa atua como um servidor proxy intermediário.

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

  • Sem um 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 de solicitação x-forwarded-for) = o endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN = 10.10.10.10.

  • Com um 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 IP mais à esquerda no cabeçalho de solicitação x-forwarded-for) = 10.10.10.10.

    • O endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN = o endereço IP do servidor proxy = 192.168.0.1.

    • O endereço IP real do cliente (o IP mais à esquerda no cabeçalho de solicitação x-forwarded-for) ≠ o endereço IP usado para estabelecer a conexão entre o cliente e o POP do CDN DCDN.

Em regiões específicas, um pequeno número de provedores de service de Internet (ISPs) pode atribuir endereços IP privados aos usuários finais. Como resultado, o nó do CDN DCDN recebe o endereço IP privado do usuário.

Nota

Os endereços IP privados se enquadram nos três intervalos a seguir:

  • Endereços IP privados Classe A: 10.0.0.0–10.255.255.255. Máscara de sub-rede: 10.0.0.0/8.

  • Endereços IP privados Classe B: 172.16.0.0–172.31.255.255. Máscara de sub-rede: 172.16.0.0/12.

  • Endereços IP privados Classe C: 192.168.0.0–192.168.255.255. Máscara de sub-rede: 192.168.0.0/16.

Operadores de correspondência (matchOperator)

Operador

Parâmetro de configuração correspondente na função condition para configuração de nome de domínio

Descrição

igual a

O 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

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

existe

O matchOperator é definido como exists.

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

não existe

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

contém qualquer um

O 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. Há suporte para no máximo 32 valores de correspondência.

Há suporte para dois tipos de correspondência por inclusão:

  • Correspondência exata: Insira o valor de correspondência diretamente. Por exemplo, para corresponder a a, a variável deve ser igual a a.

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

não contém nenhum

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

maior que

O matchOperator é definido como gt.

Ou seja, >

menor que

O matchOperator é definido como lt.

Ou seja, <

maior ou igual a

O matchOperator é definido como ge.

Ou seja, >=

menor ou igual a

O matchOperator é definido como le.

Ou seja, <=

correspondência de expressão regular

O matchOperator é definido como regex.

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

Nota

Se configure regras no console ou pela openapi, não será possível usar esses operadores de expressão regular. No entanto, é possível visualize as configurações existentes. Para usar operadores de correspondência relacionados a expressões regulares,

não correspondência de expressão regular

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

Curingas

Curinga

Descrição

Exemplo de correspondência de caminho

?

Corresponde a qualquer caractere único.

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

*

Corresponde a zero ou mais caracteres.

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

Recursos que suportam condições de regra

Categoria

Recurso

Configuração básica

Conditional origin

Configurações de cache

Cache expiration

Modify outbound response headers

URL rewrite

Custom cache key

Configurações de origem

Modify outgoing request headers

Modify incoming response headers

Parameter rewrite

Specify an origin-pull HOST for an origin server

Controle de acesso

Configure a Referer blacklist or whitelist

Configure URL signing

Configure an IP blacklist or whitelist

Configure a User-Agent blacklist or whitelist

Otimização de desempenho

Ignore parameters

Configurações de vídeo

Configure range origin fetch

Limitação de tráfego

Single-request throttling

Gerenciamento de configuração

  • Onde visualize as ações de execução: A página Rules Engine define apenas condições de regra. Ela não configure ações de execução diretamente. visualize e gerencie ações de execução específicas, como expiração de cache, reescrita de URL e limitação, na página do recurso que referencia a regra. Por exemplo, se uma configuração de expiração de cache referenciar uma condição de regra, visualize-a e modifique-a em Configurações de Cache > Expiração de Cache.

  • Remote Authentication não suporta condições de regra: O recurso de autenticação remota não pode referenciar condições de regra. Não use o mecanismo de regras para controlar o escopo em que a autenticação remota entra em vigor.

  • Tempo limite de autenticação: O Timeout do recurso Remote Authentication aceita no máximo 3000 milissegundos (3 segundos). O valor padrão é 500 milissegundos. 3000 milissegundos é o máximo aceito pelo sistema.

Casos de uso avançados

Implemente as seguintes configurações avançadas com o Mecanismo de Regras:

  • Limitação de taxa diferenciada: Para limitar a taxa de algumas solicitações, mas não de outras (por exemplo, limitar a taxa de URLs com parâmetros de autenticação, mas não de outras URLs), ou para configure uma taxa limite de fallback, crie condições de regra para distinguir as características da solicitação no módulo Rules Engine. Em seguida, em Limitação de Taxa para uma Única Solicitação, referencie as diferentes condições de regra e defina uma taxa limite diferente para cada uma.

  • Roteamento de origem canário baseado em IP: Para implementar uma versão canário com base em endereços IP de cliente ou rotear solicitações de IPs específicos para diferentes origens, crie uma condição de correspondência de IP no mecanismo de regras. Em seguida, referencie essa condição de regra em "Origem condicional" e especifique diferentes endereços de origem.

  • Recomendação de arquitetura de origem mista: Se precisar usar tanto o WAF quanto o OSS como origens, não configure diretamente várias origens primárias. Em vez disso, use o mecanismo de regras para crie condições de correspondência com base em caminhos de URL e, em seguida, especifique dinamicamente o endereço de origem para cada caminho em "Origem condicional" para evitar conflitos de origem entre várias origens.

Procedimento

  1. Faça login no console do CDN.

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

  3. Na página Domain Names, encontre o nome de domínio de destino e clique em Manage na coluna Actions.

  4. Na barra de navegação à esquerda do nome de domínio especificado, clique em Rules Engine.

  5. Clique em Add Rule.

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

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

Cenários típicos de configuração

As seções a seguir descrevem como implementar três cenários comuns de configuração.

Cenário 1: Controle de acesso de lista de permissões de IP e redirecionamentos fora da lista de permissões

Requisito: Permitir que apenas endereços IP especificados acessem o site e redirecionar automaticamente todos os outros endereços IP para uma página de manutenção.

Abordagem de configuração:

  1. No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Endereço IP do cliente, defina o operador de correspondência como não contém nenhum e insira os endereços IP da lista de permissões como os valores de correspondência.

  2. Em "Configuração de cache" > "Reescrita de URL de acesso", referencie essa condição de regra e redirecione as solicitações correspondentes (ou seja, solicitações de endereços IP fora da lista de permissões) para a URL da página de manutenção especificada, como uma página HTML hospedada no OSS.

Notas:

  • Se as solicitações de endereços IP fora da lista de permissões retornarem 403 em vez de redirecionar, verifique se várias origens OSS causam um conflito de origem. Recomendamos mapear cada nome de domínio do CDN DCDN para apenas uma origem OSS primária.

  • Certifique-se de que a URL da página de manutenção seja publicamente acessível e não esteja bloqueada por outras regras de controle de acesso.

  • Comportamento padrão: Quando uma regra de lista de permissões de IP é associada a uma condição de correspondência de caminho de URI, a verificação da lista de permissões de IP se aplica apenas às solicitações correspondentes a esse caminho de URI; as demais solicitações são permitidas por padrão. Para aplicar o controle de acesso de IP a todos os caminhos, use o EdgeScript para escrever uma lógica personalizada.

Cenário 2: Proteção de Referer e controle de extensão de arquivo

Requisito: Restringir o acesso de Referer para arquivos com extensões especificadas, permitindo solicitações com um Referer vazio para arquivos com essas extensões.

Abordagem de configuração:

  1. No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Extensão de arquivo, defina o operador de correspondência como não contém nenhum e insira as extensões que deseja isentar, como .pdf, como os valores de correspondência.

  2. Em "Controle de acesso" > "Proteção contra hotlink de Referer", referencie essa condição de regra. As solicitações para extensões diferentes das especificadas sofrem restrição pela lista de permissões ou lista de bloqueios de Referer, enquanto as solicitações com um Referer vazio para as extensões especificadas ficam isentas.

Cenário 3: Bloquear acesso a arquivos que não sejam de imagem e vídeo

Requisito: Um bucket do OSS é disponibilizado por meio da aceleração do CDN. Bloqueie o acesso a arquivos não relacionados a mídia, como .html, por meio de URLs maliciosas forjadas.

Abordagem de configuração:

  1. No módulo Rules Engine, crie uma condição de regra. defina o tipo de correspondência como Extensão de arquivo, defina o operador de correspondência como contém qualquer um e insira .html,.htm,.php,.asp,.jsp como os valores de correspondência.

  2. Adicione uma condição de regra. defina o Tipo de Correspondência como "IP do Cliente", o Operador de Correspondência como "Não contém nenhum" e o Valor de Correspondência como os endereços IP da lista de permissões.

  3. Em "Controle de acesso", referencie essa condição de regra e retorne 403 para solicitações correspondentes: solicitações de endereços IP fora da lista de permissões para arquivos que não sejam formatos de imagem ou vídeo especificados.

Nota (restrições de upload):

O mecanismo de regras do CDN limita apenas o acesso; não controla uploads. Para limitar os tipos de arquivo durante o upload, use a API PostObject do OSS e configure uma Política para restringir os tipos de arquivo. Por exemplo, defina starts-with $Content-Type image/ rejeita uploads de arquivos que não sejam de imagem, como .html. A API PutObject do OSS não verifica os tipos de arquivo e não bloqueia arquivos que não sejam de mídia durante o upload.

Perguntas frequentes

As regras configuradas para o cabeçalho Host ao buscar de uma origem especificada contam para o limite de regra condicional avançada?

Sim. Qualquer regra aplicada a um nome de domínio conta para o limite de regra condicional avançada. É possível crie até 50 condições de regra por nome de domínio, e cada condição pode conter até 20 subcondições.

Onde estão as ações de execução após configure o mecanismo de regras?

O próprio mecanismo de regras define condições e entra em vigor apenas quando combinado com outros recursos, como expiração de cache, reescrita de parâmetro de solicitação de origem e reescrita de URL. As ações de execução refletem-se na configuração do recurso associado específico, onde é possível visualize ou gerencie as regras referenciadas. Por exemplo, primeiro crie uma condição de regra para defina a lógica de correspondência e, em seguida, referencie essa regra na expiração de cache para que a política de cache se aplique apenas às solicitações correspondentes.

Com a autenticação de URL ativada, como posso usar o mecanismo de regras para corresponder a parâmetros de solicitação e controlar baixe de vídeo?

Quando a autenticação de URL (autenticação A) está ativada, use o mecanismo de regras para corresponder a parâmetros de solicitação e controlar o comportamento. Recomendamos configure uma condição "URL contém" no mecanismo de regras para corresponder a um nome ou valor de parâmetro de negócios especificado, como download=1.

Nota

Não use parâmetros de autenticação como critérios de correspondência para evitar afetar a validação de autenticação normal. No entanto, outros parâmetros de negócios, como download, aceitam correspondência normalmente.

Certifique-se de que a URL gerada inclua um parâmetro consistente com a regra, como http://.../video.mp4?auth_key=...&download=1, para acionar a configuração do cabeçalho de resposta correspondente e controlar os baixe.

Como configure o mecanismo de regras para evitar o armazenamento em cache após corresponder a um caminho especificado?

Para diferentes requisitos de correspondência, use um dos seguintes métodos de configuração:

  • Para extensões de arquivo: Na configuração de cache, defina a expiração de cache como 0 para extensões que não devam ser armazenadas em cache. defina uma duração de cache adequada, como 4 horas, para extensões que devam ser armazenadas em cache e selecione "Não ignorar origem", "Não armazenar cabeçalhos em cache" e "Não seguir o cache-control da origem".

  • Para correspondências de caminho: Como o console do CDN não suporta correspondência de expressão regular de URLs completas, configure a correspondência de caminho de URI por meio do mecanismo de regras. defina o Tipo de Correspondência como "URI (caminho)", o Operador de Correspondência como "Contém qualquer um" ou "Não contém nenhum" e use os seguintes curingas no Valor de Correspondência: ? e *. Por exemplo, insira /*/no-cache/* para corresponder a /api/no-cache/data e caminhos semelhantes.

A correspondência de caminho começa a partir da primeira / após o nome de domínio?

Sim. Para uma correspondência de caminho sem expressão regular no mecanismo de regras, o conteúdo correspondido é a parte do caminho que começa a partir da primeira / após o nome de domínio. Para https://example.com/a.html, o caminho realmente correspondido é /a.html.

O CDN não oferece suporte nativo a correspondências de expressão regular para URLs completas que incluem um protocolo e um nome de domínio, como ^https?://([^/]+)/path.

Por que um cabeçalho de resposta não entra em vigor na primeira vez que configure a correspondência de nome de arquivo?

Ao configure a correspondência de nome de arquivo no mecanismo de regras, observe que "Nome do arquivo (basename)" e "Extensão de arquivo (extension)" são dois tipos de correspondência distintos:

  • Nome do arquivo (basename): Corresponde à parte do nome do arquivo, excluindo a extensão do arquivo. Por exemplo, script (excluindo .js).

  • Extensão de arquivo (extension): Corresponde ao sufixo do nome do arquivo. Por exemplo, .js e .css.

Se a correspondência do nome do arquivo incluir a extensão do arquivo, como script.js, a correspondência falhará. Remova a extensão do arquivo e insira apenas a parte do nome do arquivo, como script, para que a configuração entre em vigor.