Compartir a través de


Variables del conjunto de reglas de Azure Front Door

Las variables de servidor del conjunto de reglas proporcionan acceso a la información estructurada sobre la solicitud cuando trabaja con Conjunto de reglas.

Cuando se usan las condiciones de coincidencia del conjunto de reglas, las variables de servidor están disponibles como condiciones de coincidencia para que pueda identificar las solicitudes con propiedades específicas.

Cuando se usan acciones de conjunto de reglas, puede usar variables de servidor para cambiar dinámicamente los encabezados de solicitud y respuesta, o la reescritura de URL, las rutas de acceso y las cadenas de consulta, por ejemplo, al cargar una nueva página o cuando se publica un formulario.

Nota:

Las variables de servidor están disponible con los niveles de Azure Front Door estándar y premium.

Variables admitidas

Nombre de la variable Descripción
socket_ip La dirección IP de la conexión directa con el perímetro de Azure Front Door. Si el cliente usaba un proxy HTTP o un equilibrador de carga para enviar la solicitud, el valor de socket_ip es la dirección IP del proxy o del equilibrador de carga.
Para acceder a esta variable de servidor en una condición de coincidencia, use Dirección de socket.
client_ip Dirección IP del cliente que realizó la solicitud original. Si hubiera un encabezado X-Forwarded-For en la solicitud, la dirección IP del cliente se seleccionaría del mismo encabezado.
Para tener acceso a esta variable de servidor en una condición de coincidencia, use Dirección remota y configure el operador en Coincidencia de IPSin coincidencia de IP.
client_port Puerto IP del cliente que realizó la solicitud.
Para acceder a esta variable de servidor en una condición de coincidencia, use Puerto de cliente.
hostname Nombre de host de la solicitud del cliente.
Para acceder a esta variable de servidor en una condición de coincidencia, use Nombre de host.
geo_country Indica el país o región de origen del solicitante mediante su código de país o región.
Para tener acceso a esta variable de servidor en una condición de coincidencia, use Dirección remota y configure el operador en Coincidencia de geoáreaSin coincidencia de geoárea.
http_method Método usado para realizar la solicitud de URL, como GET o POST.
Para acceder a esta variable de servidor en una condición de coincidencia, use Método de solicitud.
http_version Protocolo de solicitud. Normalmente HTTP/1.0, HTTP/1.1 o HTTP/2.0.
Para acceder a esta variable de servidor en una condición de coincidencia, use Versión de HTTP.
query_string La lista de pares de variable-valor que aparecen después de ? en la dirección URL solicitada.
Por ejemplo, en la solicitud http://contoso.com:8080/article.aspx?id=123&title=fabrikam, el valor query_string es id=123&title=fabrikam.
Para acceder a esta variable de servidor en una condición de coincidencia, use Cadena de consulta.
request_scheme Esquema de solicitud: http o https.
Para acceder a esta variable de servidor en una condición de coincidencia, use Protocolo de solicitud.
request_uri El URI original completo de la solicitud (con argumentos).
Por ejemplo, en la solicitud http://contoso.com:8080/article.aspx?id=123&title=fabrikam, el valor request_uri es http://contoso.com:8080/article.aspx?id=123&title=fabrikam.
Para acceder a esta variable de servidor en una condición de coincidencia, use Dirección URL de solicitud.
ssl_protocol El protocolo de una conexión TLS establecida.
Para acceder a esta variable de servidor en una condición de coincidencia, use Protocolo de SSL.
server_port El puerto del servidor que ha aceptado una solicitud.
Para acceder a esta variable de servidor en una condición de coincidencia, use Puerto de servidor.
url_path Identifica el recurso específico en el host al que el cliente web quiere acceder. Esta es la parte del URI de solicitud sin los argumentos o la barra diagonal inicial.
Por ejemplo, en la solicitud http://contoso.com:8080/article.aspx?id=123&title=fabrikam, el valor url_path es article.aspx.
Azure Front Door admite la captura dinámica de la ruta de acceso URL con una variable de servidor {url_path:seg#} y convierte la ruta de acceso URL a minúsculas o mayúsculas con {url_path.tolower} o {url_path.toupper}. Para obtener más información, vea Formato de variable de servidor y Variables de servidor.
Para acceder a esta variable de servidor en una condición de coincidencia, use la condición de Ruta de acceso de solicitud.

Formato de variables de servidor

Cuando trabaje con acciones de conjunto de reglas, especifique variables de servidor con los siguientes formatos:

  • {variable}: Incluye toda la variable de servidor. Por ejemplo, si la dirección IP del cliente es 111.222.333.444, el token {client_ip} se evaluaría como 111.222.333.444.

  • {variable:offset}: Incluye la variable de servidor después de un desplazamiento específico hasta el final de la variable. La base del desplazamiento es cero. Por ejemplo, si la dirección IP del cliente es 111.222.333.444, el token {client_ip:3} se evaluaría como .222.333.444.

  • {variable:offset:length}: Incluye la variable de servidor después de un desplazamiento específico hasta la longitud especificada. La base del desplazamiento es cero. Por ejemplo, cuando la variable var es 'AppId=01f592979c584d0f9d679db3e66a3e5e',

    • Desplazamientos dentro del intervalo, sin longitudes: {var:0} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:6} = 01f592979c584d0f9d679db3e66a3e5e, {var:-8} = e66a3e5e
    • Desplazamientos fuera del intervalo, sin longitudes: {var:-128} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:128} = null
    • Desplazamientos y longitudes dentro del intervalo: {var:0:5} = AppId, {var:7:7} = 1f59297, {var:7:-7} = 1f592979c584d0f9d679db3e
    • Longitudes de cero: {var:0:0} = null, {var:4:0} = null
    • Desplazamientos dentro del intervalo y longitudes fuera del intervalo: {var:0:100} = AppId=01f592979c584d0f9d679db3e66a3e5e, {var:5:100} = =01f592979c584d0f9d679db3e66a3e5e, {var:0:-48} = null, {var:4:-48} = null
  • {url_path:seg#}: permitir que los usuarios capturen y usen el segmento de ruta de acceso de dirección URL deseado en Redirección de URL, Reescritura de URL o cualquier acción significativa. El usuario también puede capturar varios segmentos mediante el mismo estilo que la captura de substring {url_path:seg1:3}. Por ejemplo, para un patrón de origen /id/12345/default y una dirección URL reescritura de destino /{url_path:seg1}/home, la ruta de acceso URL esperada después de volver a escribir es /12345/home. Para una captura de varios segmentos, cuando el patrón de origen es /id/12345/default/location/test, un destino de reescritura de dirección URL /{url_path:seg1:3}/home da como resultado /12345/default/location/home. La captura de segmento incluye la ruta de acceso de ubicación, por lo que si la ruta es /match/*, el segmento 0 coincidirá.

    Offset corresponde al índice del segmento de inicio y la longitud hace referencia al número de segmentos que se van a capturar, incluido el que se encuentra en el índice = desplazamiento.

    Suponiendo que el desplazamiento y la longitud son positivos, se aplica la siguiente lógica:

    • Si no se incluye la longitud, capture el segmento en el índice = desplazamiento.
    • Cuando se incluye la longitud, capture segmentos del índice = desplazamiento hasta el índice = desplazamiento + longitud.

    También se controlan los siguientes casos especiales:

    • Si el desplazamiento es negativo, cuente hacia atrás desde el final de la ruta de acceso para obtener el segmento inicial.
    • Si offset es un valor negativo mayor o igual que el número de segmentos, establezca en 0.
    • Si el desplazamiento es mayor que el número de segmentos, el resultado está vacío.
    • Si la longitud es 0, devuelve el único segmento especificado por desplazamiento.
    • Si la longitud es negativa, trata como un segundo desplazamiento y calcula hacia atrás desde el final de la ruta de acceso. Si el valor es menor que el desplazamiento, se produce una cadena vacía.
    • Si la longitud es mayor que el número de segmentos, devuelva lo que permanece en la ruta de acceso.
  • {url_path.tolower}/{url_path.toupper}: convierta la ruta de acceso URL a minúsculas o mayúsculas. Por ejemplo, un destino {url_path.tolower} en la reescritura o redirección de direcciones URL para /lowercase/ABcDXyZ/EXAMPLE los resultados en /lowercase/abcdxyz/example. Un destino {url_path.toupper} en la reescritura o redirección de URL para /ABcDXyZ/example los resultados en /ABCDXYZ/EXAMPLE.

Acciones de conjunto de reglas admitidas

Las variables de servidor se admiten en las siguientes acciones de conjunto de reglas:

Pasos siguientes