Compartilhar via


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

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

Quando você usa as 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 um novo carregamento de página ou quando um formulário é postado.

Observação

As variáveis de servidor estão disponíveis somente nas camadas Standard e Premium do Azure Front Door.

Variáveis com suporte

Nome da variável Descrição
socket_ip O endereço IP da conexão direta com ao Azure Front Door edge. Se o cliente usou um proxy HTTP ou um balanceador de carga para enviar a solicitação, o valor de socket_ip será o endereço IP do balanceador de carga ou proxy.
Para acessar essa variável de servidor em uma condição de correspondência, use o endereço de soquete.
client_ip O endereço IP do cliente que fez a solicitação original. Se houver um cabeçalho X-Forwarded-For na solicitação, o endereço IP do cliente será escolhido do cabeçalho.
Para acessar essa variável de servidor em uma condição de correspondência, use o Endereço remoto e configure o Operador para Correspondência de IP ou Sem Correspondência de IP.
client_port Porta IP do cliente que fez a solicitação.
Para acessar essa variável de servidor em uma condição de correspondência, use a Porta de cliente.
hostname O nome do host na solicitação do cliente.
Para acessar essa variável de servidor em uma condição de correspondência, use o 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 acessar essa variável de servidor em uma condição de correspondência, use o Endereço remoto e configure o Operador para Correspondência Geográfica ou Sem Correspondência Geográfica.
http_method O método usado para fazer a solicitação de URL, como GET ou POST.
Para acessar essa variável de servidor em uma condição de correspondência, use o Método de solicitação.
http_version O protocolo de solicitação. Geralmente HTTP/1.0, HTTP/1.1 ou HTTP/2.0.
Para acessar essa variável de servidor em uma condição de correspondência, use a Versão do HTTP.
query_string A lista de pares de variável/valor que segue o ? na URL solicitada.
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o valor query_string é id=123&title=fabrikam.
Para acessar essa variável de servidor em uma condição de correspondência, use a Cadeia de caracteres de consulta.
request_scheme O esquema da solicitação: http ou https.
Para acessar essa variável de servidor em uma condição de correspondência, use o Protocolo de solicitação.
request_uri A URI da solicitação original completa (com argumentos).
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o valor request_uri é 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 a 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 acessar essa variável de servidor em uma condição de correspondência, use a Porta de servidor.
url_path Identifica o recurso específico no host que o cliente Web deseja acessar. Essa é a parte da URI de solicitação sem os argumentos ou barra à esquerda.
Por exemplo, na solicitação http://contoso.com:8080/article.aspx?id=123&title=fabrikam, o valor url_path é article.aspx.
O Azure Front Door dá suporte à captura dinâmica do caminho da URL com a variável de servidor {url_path:seg#} e converte o caminho da URL em minúsculas ou maiúsculas com {url_path.tolower} ou {url_path.toupper}. Para obter mais informações, consulte Formato de variável de servidor e Variáveis de servidor.
Para acessar essa variável de servidor em uma condição de correspondência, use a condição Caminho da solicitação.

Formato de variável de servidor

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

  • {variable}: inclui a variável de servidor inteira. Por exemplo, se o endereço IP do cliente for 111.222.333.444, o token {client_ip} será avaliado como 111.222.333.444.

  • {variable:offset}: inclui 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, o token {client_ip:3} será avaliado como .222.333.444.

  • {variable:offset:length}: inclui a variável de servidor após um deslocamento específico, até o comprimento especificado. O deslocamento é baseado em zero. Por exemplo, quando a variável var for 'AppId=01f592979c584d0f9d679db3e66a3e5e',

    • Deslocamentos 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
    • Zero comprimentos: {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} = nulo, {var:4:-48} = nulo
  • {url_path:seg#}: permite que os usuários capturem e usem o segmento de caminho da URL desejado em Redirecionamento de URL, Regravação de URL ou qualquer ação significativa. O usuário também pode capturar vários segmentos usando o mesmo estilo que a captura de substring {url_path:seg1:3}. Por exemplo, para um padrão de origem /id/12345/default e uma regravação de URL de Destino /{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, um destino de reescrita de URL /{url_path:seg1:3}/home resulta em /12345/default/location/home. A captura de segmento inclui o caminho da localização, portanto, se a rota for /match/*, o segmento 0 será correspondente.

    O deslocamento corresponde ao índice do segmento inicial e o comprimento se refere ao número de segmentos a serem capturados, incluindo aquele em que índice = deslocamento.

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

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

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

    • Se o deslocamento for negativo, conte para trás a partir do final do caminho para obter o segmento inicial.
    • Se deslocamento for um valor negativo maior ou igual ao número de segmentos, defina-o como 0.
    • Se o deslocamento for maior do que o número de segmentos, o resultado ficará vazio.
    • Se o comprimento for 0, o único segmento especificado pelo deslocamento será retornado
    • Se o comprimento for negativo, trate-o como um segundo deslocamento e calcule para trás a partir do final do caminho. Se for menor do que o deslocamento, o valor resultará em uma cadeia de caracteres vazia.
    • Se o comprimento for maior do que o número de segmentos, retorne o que permanecer no caminho.
  • {url_path.tolower}/{url_path.toupper}: converte o caminho da URL em letras minúsculas ou maiúsculas. Por exemplo, um destino {url_path.tolower} em reescrita/redirecionamento de URL para /lowercase/ABcDXyZ/EXAMPLE resulta em /lowercase/abcdxyz/example. Um destino {url_path.toupper} em reescrita/redirecionamento de URL para /ABcDXyZ/example resulta em /ABCDXYZ/EXAMPLE.

Ações de conjunto de regras com suporte

As variáveis de servidor têm suporte nas seguintes ações de conjunto de Regras:

Próximas etapas