Ao configurar determinados recursos do CDN, como modificar cabeçalhos de resposta de saída ou cabeçalhos de solicitação, você pode usar variáveis para obter o contexto da solicitação ou resposta atual. As variáveis retornam valores como o método de solicitação, a URL e o endereço IP do cliente, o que permite um controle refinado. Este tópico descreve todas as variáveis compatíveis com o CDN, com valores de exemplo e notas de uso para cada variável.
Visão geral das variáveis
As variáveis do CDN são agrupadas por domínio de atuação em variáveis de domínio de acesso, variáveis de domínio de busca de origem e variáveis de resposta:
Variáveis de domínio de acesso: Variáveis que entram em vigor no domínio de acesso, onde o nó do CDN processa as solicitações do cliente e gera a chave de cache.
Variáveis de domínio de busca de origem: Variáveis que entram em vigor durante a busca de origem. Alguns recursos são implantados no módulo de domínio de busca de origem. Nesse caso, as variáveis de domínio de acesso não surtem efeito e devem ser substituídas por variáveis de domínio de busca de origem.
Variáveis de resposta: Você pode usar essas variáveis para obter os cabeçalhos de resposta que o servidor de origem retorna para o nó do CDN.
A tabela a seguir lista os grupos de variáveis e as variáveis em cada domínio de atuação:
|
Domínio de atuação |
Grupo de variáveis |
Variáveis |
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de acesso |
|
|
|
O domínio de busca de origem |
|
|
|
O domínio de busca de origem |
|
|
|
Variáveis de resposta |
|
Recursos compatíveis com variáveis
Recursos no domínio de acesso
Recursos no domínio de busca de origem
Limites
Antes de referenciar uma variável, verifique as seguintes condições e limites que se aplicam a todas as variáveis:
As variáveis SSL/TLS aplicam-se apenas a solicitações HTTPS. Seus valores ficam vazios quando essas variáveis são referenciadas em solicitações HTTP.
As variáveis
$ssl_client_*possuem valores apenas quando a verificação de certificado do cliente (autenticação mútua ou mTLS) está configurada. Seus valores ficam vazios para solicitações HTTPS padrão.A resolução do GeoIP tem limites de precisão. Os campos de nível de cidade e longitude/latitude geralmente identificam o centro da cidade e não são adequados para casos de uso de bloqueio que exigem geofencing preciso. Quando não é possível identificar um endereço IP do cliente, os campos relacionados retornam valores padrão (por exemplo, o código do país retorna
XXe os valores de código numérico retornam0).O
$uripode ser alterado pela lógica interna de roteamento de solicitações do CDN, como redirecionamento ou reescrita interna. Não recomendamos o uso desta variável. Para obter um caminho inalterado, use$raw_uri.
Convenções de nomenclatura de variáveis de cabeçalho
Quando o CDN processa cabeçalhos de solicitação HTTP e cabeçalhos de resposta, ele os mapeia automaticamente para variáveis internas. Os nomes das variáveis devem seguir estas regras:
Prefixo fixo: Todas as variáveis de cabeçalho de solicitação devem começar com
$http_, e todas as variáveis de cabeçalho de resposta devem começar com$sent_http_.Conversão para minúsculas: Todas as letras maiúsculas em um nome de cabeçalho devem ser convertidas para minúsculas.
Substituição de hifens: Todos os hifens (
-) em um nome de cabeçalho devem ser substituídos por sublinhados (_).
Exemplos de conversão:
|
Nome original do cabeçalho |
Variável convertida |
|
Accept-Language |
|
|
X-Forwarded-For |
|
|
X-Customize-Header |
|
Variáveis no domínio de acesso
Método de solicitação
$request_method
Significado: O método de solicitação HTTP usado pela solicitação atual.
Valores de exemplo:
GET,POST,HEAD,PUT,DELETE, entre outros.
Versão do HTTP
$server_protocol
Significado: A versão do protocolo HTTP usada pela solicitação atual.
Valores de exemplo:
HTTP/1.1eHTTP/2.0.
URI
$uri
Significado: O caminho da URL da solicitação atual, excluindo os parâmetros de consulta.
Valor de exemplo:
/1.txt.Nota: Este valor pode ser alterado pela lógica interna de roteamento de solicitações do CDN, como redirecionamento ou reescrita interna. Não recomendamos o uso desta variável. Para obter um caminho inalterado, use
$raw_uri.
$raw_uri
Significado: O caminho da URL da solicitação original, excluindo os parâmetros de consulta. A lógica interna de roteamento de solicitações do CDN não altera este valor.
Valor de exemplo:
/1.txt.
$request_uri
Significado: O caminho completo da URL da solicitação original, incluindo os parâmetros de consulta.
Valor de exemplo:
/1.txt?chapter=1&flag=on.
Parâmetros de solicitação
$args
Significado: A string completa de parâmetros de consulta na URL (excluindo
?).Valor de exemplo:
chapter=1&flag=on.
$arg_<parameter-name>
Significado: O valor de um parâmetro específico nos parâmetros de consulta da URL. Substitua
<parameter-name>pelo nome real do parâmetro.Valor de exemplo:
$arg_flagextrai valores da URL/1.txt?chapter=1&flag=on. O valor do parâmetroflagéon.
Cabeçalhos de solicitação
$http_<request-header-name>
Significado: O valor de um cabeçalho de solicitação HTTP específico na solicitação do cliente. Substitua
<request-header-name>pelo nome real do cabeçalho de solicitação.Valores de exemplo:
$http_user_agentrepresenta o valor do cabeçalho de solicitação User-Agent, e$http_refererrepresenta o valor do cabeçalho de solicitação Referer.Nota: Os nomes das variáveis de cabeçalho de solicitação devem seguir Header variable naming conventions.
Nome de domínio
$host
Significado: O nome de domínio original na solicitação do cliente, que é o valor do cabeçalho de solicitação
Host: <domain-name>.Valor de exemplo:
www.example.com.
Protocolo de solicitação
$scheme
Significado: O tipo de protocolo usado pela solicitação atual.
Valores de exemplo:
httpouhttps.
Endereço IP e porta
$remote_addr
Significado: O endereço IP do cliente.
Valor de exemplo:
30.40.XX.XXX.
$remote_port
Significado: O número da porta do cliente.
Valor de exemplo:
63213.
$x_server_addr
Significado: O endereço IP de destino, que é o endereço IP virtual (VIP) que o nó do CDN expõe externamente.
Valor de exemplo:
122.228.XX.XXX.
$x_server_port
Significado: A porta de destino, que é a porta de service que o nó do CDN expõe externamente.
Valores de exemplo:
80ou443.
Geolocalização de IP e operadora
O CDN usa o endereço IP do cliente ($remote_addr) para resolver suas informações de geolocalização e operadora. Os valores dessas variáveis são baseados nos resultados da resolução do GeoIP. A resolução do GeoIP tem limites de precisão. Os campos de nível de cidade e longitude/latitude geralmente identificam o centro da cidade e não são adequados para casos de uso de bloqueio que exigem geofencing preciso. Quando não é possível identificar um endereço IP do cliente, os campos relacionados retornam valores padrão (por exemplo, o código do país retorna XX e os valores de código numérico retornam 0). Cada dimensão fornece duas formas de valor: um código (com o sufixo _id) e um nome em inglês (com o sufixo _en).
$ip_isp_id
Significado: O código da operadora à qual o endereço IP do cliente pertence.
Valor de exemplo: Para a China Telecom,
100017.
$ip_isp_en
Significado: O nome em inglês da operadora à qual o endereço IP do cliente pertence.
Valor de exemplo: Para a China Telecom,
ChinaTelecom.
$ip_country_id
Significado: O código do país ou região ao qual o endereço IP do cliente pertence.
Valor de exemplo: Para a China,
CN.
$ip_country_en
Significado: O nome em inglês do país ou região ao qual o endereço IP do cliente pertence.
Valor de exemplo: Para a China,
China.
$ip_region_id
Significado: O código da região ou província à qual o endereço IP do cliente pertence.
Valor de exemplo: Para a província de Guangdong,
440000.
$ip_region_en
Significado: O nome em inglês da região ou província à qual o endereço IP do cliente pertence.
Valor de exemplo: Para a província de Guangdong,
guangdong.
$ip_city_id
Significado: O código da cidade à qual o endereço IP do cliente pertence.
Valor de exemplo: Para Shenzhen,
440300.
$ip_city_en
Significado: O nome em inglês da cidade à qual o endereço IP do cliente pertence.
Valor de exemplo: Para Shenzhen,
shenzhen.
$ip_longitude
Significado: A longitude da cidade à qual o endereço IP do cliente pertence.
Valor de exemplo: Para Shenzhen,
114.05787.
$ip_latitude
Significado: A latitude da cidade à qual o endereço IP do cliente pertence.
Valor de exemplo: Para Shenzhen,
22.54309.
SSL/TLS
As variáveis SSL/TLS fornecem informações de sessão sobre solicitações HTTPS.
Essas variáveis aplicam-se apenas a solicitações HTTPS. Seus valores ficam vazios quando são referenciadas em solicitações HTTP.
As variáveis
$ssl_client_*também exigem que a verificação de certificado do cliente seja configurada com antecedência. Seus valores ficam vazios para solicitações HTTPS padrão.
$ssl_cipher
Significado: A suíte de criptografia (uma combinação de algoritmos criptográficos) usada pela solicitação atual.
Valor de exemplo:
TLS_AES_256_GCM_SHA384.
$ssl_protocol
Significado: A versão do protocolo SSL/TLS usada pela solicitação atual.
Valor de exemplo:
TLSv1.3.
$ssl_client_cert
Significado: Os dados do certificado do cliente (o conteúdo do certificado é retornado).
$ssl_client_raw_cert
Significado: Os dados brutos do certificado do cliente (o uso é o mesmo do
$ssl_client_cert, e o texto original do certificado é mantido).
$ssl_client_serial
Significado: O número de série do certificado do cliente.
$ssl_verify
Significado: O resultado da verificação do certificado do cliente. O valor é
SUCCESSquando a verificação é bem-sucedida.Valor de exemplo:
SUCCESS.
$ssl_client_s_dn
Significado: O nome distinto (DN) do assunto do certificado do cliente.
$ssl_client_i_dn
Significado: O nome distinto (DN) do emissor do certificado do cliente.
Nome do nó
$hostname
Significado: O nome de host do nó do CDN que processa a solicitação atual.
Valor de exemplo:
cn2522(prevalece o nome real do nó).
Variáveis no domínio de busca de origem
$scheme, $http_x_client_scheme e $proxy_scheme retornam o tipo de protocolo (http ou https), mas diferem no domínio de atuação e no valor que cada um retorna:
|
Variável |
Domínio de atuação |
Descrição |
|
|
O domínio de acesso |
O tipo de protocolo usado pela solicitação atual |
|
|
O domínio de busca de origem |
O tipo de protocolo que o cliente usa para iniciar a solicitação (o esquema do cliente) |
|
|
O domínio de busca de origem |
O tipo de protocolo que o nó do CDN usa para a busca de origem (o esquema de busca de origem) |
Protocolo
$http_x_client_scheme
Significado: O tipo de protocolo que o cliente usa para iniciar a solicitação (o esquema do cliente).
Valores de exemplo:
httpouhttps.
$proxy_scheme
Significado: O tipo de protocolo que o nó do CDN usa para a busca de origem (o esquema de busca de origem).
Valores de exemplo:
httpouhttps.
Servidor de origem
$proxy_source
Significado: O endereço do servidor de origem para o qual a solicitação atual é realmente enviada para a busca de origem.
Valores de exemplo:
origin.example.comou192.0.2.1.
Cabeçalhos de resposta de origem
$sent_http_<response-header-name>
Significado: O valor de um cabeçalho de resposta HTTP específico na resposta de origem. Substitua
<response-header-name>pelo nome real do cabeçalho de resposta.Valor de exemplo:
$sent_http_content_typerepresenta o valor do cabeçalho de respostaContent-Typedo servidor de origem, comotext/html.Nota: Os nomes das variáveis de cabeçalho de resposta devem seguir Header variable naming conventions.