Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Front Door Standard ✔️ Front Door Premium
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 utiliza acciones de conjunto de reglas, puede utilizar variables de servidor para modificar dinámicamente los encabezados de solicitud y respuesta, y reescribir las URL, las rutas de acceso y las cadenas de consulta, por ejemplo, cuando se carga una nueva página o cuando se envía un formulario.
Nota:
Las variables de servidor solo están disponibles con los niveles Estándar y Premium de Azure Front Door.
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 como Coincidencia de geoárea o Sin 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. |
http_req_header_<headername> |
Captura el valor de un encabezado de solicitud. Por ejemplo, para el encabezado de solicitud Device: Desktop, la variable es http_req_header_Device, el valor de esta variable es Desktop. El nombre de encabezado de la sintaxis de variable admite caracteres alfanuméricos y guiones (a-z, A-Z, 0-9 y "-"). |
http_req_arg_<querystringkeyname> |
Captura el valor de un par clave-valor de una cadena de consulta. Por ejemplo, en la solicitud http://contoso.com:8080/article.aspx?id=123&title=fabrikam, la variable es http_req_header_id, el valor de esta variable es 123. La clave de cadena de consulta de la sintaxis de variable admite caracteres alfanuméricos y guiones (a-z, A-Z, 0-9 y "-"). |
http_resp_header_<headername> |
Captura el valor de un encabezado de respuesta desde el origen. Por ejemplo, para un encabezado de respuesta Access-Control-Allow-Origin https://learn.microsoft.com, la variable es http_req_header_ encabezado Access-Control-Allow-Origin, el valor de esta variable es https://learn.microsoft.com. El nombre de encabezado de la sintaxis de variable admite caracteres alfanuméricos y guiones (a-z, A-Z, 0-9 y "-"). |
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 es111.222.333.444, el token{client_ip}se evaluaría como111.222.333.444. -
{variable:offset}: Incluye la variable de servidor después de un desplazamiento específico hasta el final de la variable. El desplazamiento es de base cero. Por ejemplo, si la dirección IP del cliente es111.222.333.444, el token{client_ip:3}se evaluaría como.222.333.444. -
{variable:offset:length}: incluya la variable de servidor después de un desplazamiento específico, hasta la longitud especificada. El desplazamiento es de base 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 rango y longitudes fuera del rango:
{var:0:100}=AppId=01f592979c584d0f9d679db3e66a3e5e,{var:5:100}==01f592979c584d0f9d679db3e66a3e5e,{var:0:-48}= null,{var:4:-48}= null - Para experimentar con el funcionamiento de {variable:offset:length}, abra un terminal de Bash de Linux o use el terminal de Bash en Azure Cloud Shell. Escriba el ejemplo siguiente en el terminal y examine la salida para comprender cómo se comporta la extracción de subcadena.
- Desplazamientos dentro del intervalo, sin longitudes:
variable=helloworld123; echo ${variable:5} #Output = world123
variable=helloworld123; echo ${variable:0:5} #Output = hello
Nota:
En Bash, se requiere un espacio antes de un número negativo en la expansión de parámetros para evitar errores de sintaxis.
variable=helloworld123; echo ${variable: -3:3} #Output=123
variable=helloworld123; echo ${variable:5: -3} #Output = world
{url_path:seg#}: Permitir que los usuarios capturen y usen el segmento de la ruta de la URL deseado en Redirecciones de URLs, Reescrituras de URLs 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/defaulty 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}/homeda 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 del í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, trátalo como un segundo desplazamiento y calcula hacia atrás desde el final de la ruta. 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}: Convertir la ruta URL a minúsculas o mayúsculas. Por ejemplo, un destino{url_path.tolower}en la reescritura/redirección de direcciones URL para/lowercase/ABcDXyZ/EXAMPLEresulta en/lowercase/abcdxyz/example. Un destino{url_path.toupper}en una reescritura o redirección de URL para/ABcDXyZ/exampleda como resultado/ABCDXYZ/EXAMPLE.
Acciones admitidas del conjunto de reglas
Las variables de servidor se admiten en las siguientes acciones de conjunto de reglas:
- Comportamiento del almacenamiento en caché de cadenas de consulta en Invalidación de la configuración de ruta
- Modificación del encabezado de solicitud
- Modificación del encabezado de respuesta
- Redirección de URL
- Reescritura de direcciones URL
Pasos siguientes
- Obtenga más información acerca del conjunto de reglas de Azure Front Door.
- Más información sobre las condiciones de coincidencia del conjunto de reglas.
- Más información sobre las acciones del conjunto de reglas.