Partilhar via


Variáveis de servidor do conjunto de regras do Azure Front Door

Aplica-se a: ✔️ Front Door Standard ✔️ Front Door Premium

As variáveis de servidor do conjunto de regras fornecem acesso a informações estruturadas sobre a solicitação quando você trabalha com conjuntos de regras.

Quando você usa condições de correspondência do conjunto de regras, as variáveis de servidor ficam disponíveis como condições de correspondência para que você possa identificar solicitações com propriedades específicas.

Ao usar ações de conjunto de regras, você pode usar variáveis de servidor para alterar dinamicamente os cabeçalhos de solicitação e resposta e reescrever URLs, caminhos e cadeias de caracteres de consulta, por exemplo, quando uma nova página é carregada ou quando um formulário é postado.

Nota

As variáveis de servidor só estão disponíveis com as camadas Azure Front Door Standard e Premium.

Variáveis suportadas

Nome da variável Descrição
socket_ip O endereço IP da conexão direta com o Edge do Azure Front Door. Se o cliente usou um proxy HTTP ou um balanceador de carga para enviar a solicitação, o valor de socket_ip é o endereço IP do proxy ou do balanceador de carga.
Para aceder esta variável de servidor numa condição de correspondência, use o endereço de socket.
client_ip O endereço IP do cliente que fez a solicitação original. Se houver um X-Forwarded-For cabeçalho na solicitação, o endereço IP do cliente será escolhido no cabeçalho.
Para aceder esta variável de servidor numa condição de correspondência, use Endereço remoto e configure o Operador para IP Match ou IP Not Match.
client_port A porta IP do cliente que fez a solicitação.
Para aceder a esta variável de servidor numa condição de correspondência, use Client port.
hostname O nome do host na solicitação do cliente.
Para aceder a esta variável de servidor numa condição de correspondência, use Nome do Host.
geo_country Indica o país/região de origem do solicitante por meio de seu código de país/região.
Para aceder a esta variável de servidor numa condição de correspondência exata, use o Endereço remoto e configure o Operador para Geo Match ou Geo Not Match.
http_method O método usado para fazer a solicitação de URL, como GET ou POST.
Para aceder a esta variável de servidor numa condição de correspondência, use o método Request.
http_version O protocolo de solicitação. Geralmente HTTP/1.0, HTTP/1.1, ou HTTP/2.0.
Para aceder esta variável de servidor num critério de correspondência, use versão HTTP.
query_string A lista de pares de variáveis/valores que se seguem no URL solicitado ?.
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o query_string valor é id=123&title=fabrikam.
Para aceder a esta variável de servidor numa condição de correspondência, use query string.
request_scheme O esquema de solicitação: http ou https.
Para aceder a esta variável de servidor numa condição de correspondência, use Request protocol.
request_uri O URI de solicitação original completo (com argumentos).
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o request_uri valor é http://contoso.com:8080/article.aspx?id=123&title=fabrikam.
Para acessar essa variável de servidor em uma condição de correspondência, use URL de solicitação.
ssl_protocol O protocolo de uma conexão TLS estabelecida.
Para acessar essa variável de servidor em uma condição de correspondência, use o protocolo SSL.
server_port A porta do servidor que aceitou uma solicitação.
Para aceder a esta variável do servidor numa condição de correspondência, use Porta do Servidor.
url_path Identifica o recurso específico no host que o cliente da Web deseja acessar. Esta é a parte do URI da solicitação sem os argumentos ou a barra inicial.
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o url_path valor é article.aspx.
O Azure Front Door suporta a captura dinâmica do caminho da URL com a variável de servidor {url_path:seg#} e converte o caminho da URL para minúsculas ou maiúsculas com {url_path.tolower} ou {url_path.toupper}. Para obter mais informações, consulte Formato da variável de servidor e Variáveis de servidor.
Para aceder a esta variável de servidor numa condição de correspondência, use a condição de caminho de pedido.
http_req_header_<headername> Captura o valor de um cabeçalho de solicitação. Por exemplo, para o cabeçalho da solicitação Device: Desktop, a variável é http_req_header_Device, o valor desta variável é Desktop.
O nome do cabeçalho na sintaxe de variáveis suporta caracteres alfanuméricos e hífen (as letras a-z, A-Z, os números 0-9 e "-").
http_req_arg_<querystringkeyname> Captura o valor de um par de valores de chave de cadeia de caracteres de consulta. Por exemplo, no pedido http://contoso.com:8080/article.aspx?id=123&title=fabrikam, a variável é http_req_header_id, o valor desta variável é 123.
A chave da cadeia de caracteres de consulta na sintaxe variável suporta alfanuméricos e hífen (a-z, A-Z, 0-9 e "-").
http_resp_header_<headername> Captura o valor de um cabeçalho de resposta da origem. Por exemplo, para um cabeçalho de resposta Access-Control-Allow-Origin https://learn.microsoft.com, a variável é http_req_header_ cabeçalho Access-Control-Allow-Origin, o valor desta variável é https://learn.microsoft.com.
O nome do cabeçalho na sintaxe de variáveis suporta caracteres alfanuméricos e hífen (as letras a-z, A-Z, os números 0-9 e "-").

Formato da variável de servidor

Ao trabalhar com ações de Conjunto de Regras, especifique variáveis de servidor usando os seguintes formatos:

  • {variable}: Inclua toda a variável de servidor. Por exemplo, se o endereço IP do cliente for 111.222.333.444, então o token {client_ip} será avaliado como 111.222.333.444.
  • {variable:offset}: Inclua a variável de servidor após um deslocamento específico, até o final da variável. O deslocamento é baseado em zero. Por exemplo, se o endereço IP do cliente for 111.222.333.444, então o token {client_ip:3} será avaliado como .222.333.444.
  • {variable:offset:length}: Inclua a variável de servidor após um offset específico, até comprimento especificado. O deslocamento é baseado em zero. Por exemplo, por exemplo, quando a variável var é 'AppId=01f592979c584d0f9d679db3e66a3e5e',
    • Compensações dentro do intervalo, sem comprimentos: {var:0} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:6} = 01f592979c584d0f9d679db3e66a3e5e, {var:-8} = e66a3e5e
    • Deslocamentos fora do intervalo, sem comprimentos: {var:-128} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:128} = nulo
    • Deslocamentos e comprimentos dentro do intervalo: {var:0:5} = AppId, {var:7:7} = 1f59297, {var:7:-7} = 1f592979c584d0f9d679db3e
    • Tamanhos zero: {var:0:0} = nulo, {var:4:0} = nulo
    • Deslocamentos dentro do intervalo e comprimentos fora do intervalo: {var:0:100} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:5:100} = =01f592979c584d0f9d679db3e66a3e5e, {var:0:-48} = null, {var:4:-48} = null
    • Para experimentar como {variable:offset:length} funciona, abra um terminal bash do Linux ou use o terminal bash no Azure Cloud Shell. Insira o exemplo a seguir no terminal e examine a saída para entender como a extração de substring se comporta.
variable=helloworld123; echo ${variable:5} #Output = world123
variable=helloworld123; echo ${variable:0:5}  #Output = hello

Nota

No Bash, um espaço é necessário antes de um número negativo na expansão do parâmetro para evitar erros de sintaxe.

variable=helloworld123; echo ${variable: -3:3} #Output=123 
variable=helloworld123; echo ${variable:5: -3} #Output = world
  • {url_path:seg#}: Permita que os usuários capturem e usem o segmento de caminho de URL desejado em Redirecionamento de URL, Regravação de URL ou qualquer ação significativa. O utilizador também pode capturar vários segmentos usando o mesmo estilo da captura de subsequência {url_path:seg1:3}. Por exemplo, para um padrão de origem /id/12345/default e um destino de reconfiguração de caminho de URL /{url_path:seg1}/home, o caminho de URL esperado após a reescrita é /12345/home. Para uma captura de vários segmentos, quando o padrão de origem é /id/12345/default/location/test, uma reescrita de URL para o destino /{url_path:seg1:3}/home resulta em /12345/default/location/home. A captura de segmento inclui o caminho de localização, portanto, se a rota for /match/*, o segmento 0 será correspondente.

    Offset corresponde ao índice do segmento inicial, e comprimento refere-se a quantos segmentos capturar, incluindo aquele no índice igual ao offset.

    Supondo que o deslocamento e o comprimento sejam positivos, aplica-se a seguinte lógica:

    • Se o comprimento não estiver incluído, capture o segmento em index = offset.
    • Quando o comprimento estiver incluído, capture segmentos de índice = deslocamento até índice = deslocamento + comprimento.

    Os seguintes casos especiais também são tratados:

    • Se o deslocamento for negativo, conte para trás a partir do final do caminho para obter o segmento inicial.
    • Se offset for um valor negativo maior ou igual ao número de segmentos, defina como 0.
    • Se o deslocamento for maior que o número de segmentos, o resultado estará vazio.
    • Se o comprimento for 0, retorna o segmento único especificado pelo deslocamento.
    • Se o comprimento for negativo, considere-o como um segundo deslocamento e faça o cálculo retroativamente a partir do final do caminho. Se o valor for menor que offset, isso resultará em uma cadeia de caracteres vazia.
    • Se o comprimento for maior que o número de segmentos, retorne o que resta no caminho.
  • {url_path.tolower} / {url_path.toupper}: Converta o caminho do URL em minúsculas ou maiúsculas. Por exemplo, um destino {url_path.tolower} em regravação/redirecionamento de URL para /lowercase/ABcDXyZ/EXAMPLE resulta em /lowercase/abcdxyz/example. Um destino {url_path.toupper} em regravação/redirecionamento de URL para /ABcDXyZ/example resulta em /ABCDXYZ/EXAMPLE.

Ações suportadas do conjunto de regras

As variáveis de servidor são suportadas nas seguintes ações do conjunto de regras:

Próximos passos