Información general del enrutamiento basado en URL
El enrutamiento basado en la ruta de acceso URL permite enrutar el tráfico a los grupos de servidores back-end en función de las rutas de acceso URL de la solicitud.
Por ejemplo, puede enrutar las solicitudes de diferentes tipos de contenido a diferentes grupos de servidores back-end.
En el ejemplo siguiente, Application Gateway atiende el tráfico de contoso.com desde tres grupos de servidores back-end: VideoServerPool, ImageServerPool y DefaultServerPool.
Las solicitudes para http://contoso.com/video/* se redirigen a VideoServerPool, y http://contoso.com/images/*, a ImageServerPool. DefaultServerPool se selecciona si ninguno de los patrones de ruta de acceso coincide.
Nota:
Cuando se enruta la solicitud, la ruta URL completa se envía al grupo de back-end. Si los recursos solicitados se encuentran en una ruta diferente (por ejemplo, si una solicitud a http://contoso.com/video/* requiere que los vídeos se sirvan desde la raíz del sitio detrás del VideoServerPool), también tendrá que configurar una regla de reescritura de URL o anular la ruta del back-end en la configuración del back-end.
Importante
En las SKU v1 y v2, las reglas se procesan en el orden en que aparecen en el portal. El procedimiento recomendado al crear reglas de ruta de acceso es tener la ruta de acceso menos específica (la que tiene caracteres comodín) al final. Si los caracteres comodín están en la parte superior, tienen prioridad incluso si hay una coincidencia más específica en las reglas de ruta de acceso posteriores.
Si un agente de escucha básico aparece en primer lugar y coincide con una solicitud entrante, lo procesa ese agente de escucha. Pero es muy recomendable configurar los agentes de escucha multisitio antes de configurar un agente de escucha básico. De esta forma se asegura de que el tráfico se enruta al back-end adecuado.
Elemento de configuración UrlPathMap
El elemento urlPathMap se utiliza para especificar patrones de ruta de acceso para las asignaciones de grupos de servidores back-end. A continuación se muestra el fragmento de código del elemento urlPathMap del archivo de plantilla.
"urlPathMaps": [{
"name": "{urlpathMapName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}",
"properties": {
"defaultBackendAddressPool": {
"id": "/subscriptions/ {subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName1}"
},
"defaultBackendHttpSettings": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingname1}"
},
"pathRules": [{
"name": "{pathRuleName}",
"properties": {
"paths": [
"{pathPattern}"
],
"backendAddressPool": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName2}"
},
"backendHttpsettings": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingName2}"
}
}
}]
}
}]
PathPattern
PathPattern es la lista de patrones de ruta de acceso con los que se buscan coincidencias. Cada ruta de acceso debe comenzar por / y puede usar * como carácter comodín. La cadena que se suministra al comprobador de rutas de acceso no incluye texto después del primer ?
o #
, y esos caracteres no se permiten aquí. En caso contrario, todos los caracteres admitidos en una dirección URL se permiten en PathPattern.
Las reglas de ruta de acceso no distinguen mayúsculas de minúsculas.
Patrón de la ruta de acceso | ¿Se admite? |
---|---|
/images/* |
sí |
/images* |
sí |
/images/*.jpg |
no |
/*.jpg |
no |
/Repos/*/Comments/* |
no |
/CurrentUser/Comments/* |
sí |
Las reglas de la ruta de acceso se procesan en orden, en función de cómo aparecen en el portal. La ruta de acceso menos específica (con caracteres comodín) debe estar al final de la lista, de modo que se procesará la última. Si las reglas de caracteres comodín están presentes en la parte superior de la lista, tienen prioridad y se procesarán primero. Observe los escenarios de ejemplo siguientes.
Ejemplos
Procesamiento de reglas basadas en ruta de acceso cuando se usa el carácter comodín (*):
Ejemplo 1:
/master-dev* to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/* to microsoft.com
Dado que la ruta de acceso /master-dev*
con caracteres comodín está presente por encima de rutas de acceso más granulares, todas las solicitudes de cliente que contienen /master-dev
se enrutan a contoso.com, incluido el elemento /master-dev/api-core/
específico. Para asegurarse de que las solicitudes de cliente se enrutan a las rutas de acceso adecuadas, es fundamental tener las rutas de acceso granulares por encima de las rutas de acceso con caracteres comodín.
Ejemplo 2:
/ (default) to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/api to bing.com
/master-dev/* to microsoft.com
Todas las solicitudes de cliente con el patrón de ruta de acceso /master-dev/*
se procesan en el orden indicado. Si no hay ninguna coincidencia en las reglas de ruta de acceso, la solicitud se enruta al destino predeterminado.
Para obtener más información, vea Plantilla de Resource Manager mediante el enrutamiento basado en URL.
Regla de PathBasedRouting
RequestRoutingRule de tipo PathBasedRouting se usa para enlazar un agente de escucha a un elemento urlPathMap. Todas las solicitudes que se reciben para este agente de escucha se enrutan según la directiva especificada en urlPathMap. Fragmento de código de la regla PathBasedRouting:
"requestRoutingRules": [
{
"name": "{ruleName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/requestRoutingRules/{ruleName}",
"properties": {
"ruleType": "PathBasedRouting",
"httpListener": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/httpListeners/<listenerName>"
},
"urlPathMap": {
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}"
}
}
}
]
Pasos siguientes
Ahora que conoce el enrutamiento de contenido basado en URL, vaya a Create an application gateway using URL based routing (Creación de una puerta de enlace de aplicaciones mediante el enrutamiento basado en URL) para crear una puerta de enlace de aplicaciones con reglas de enrutamiento de direcciones URL.