У меня установлен шлюз приложений Azure с Маршрутизация на основе пути для маршрутизации между двумя различными внутренними пулами. У меня также есть Application Insights, настроенный на одном из пулов, к которому я вернусь через минуту. Мое правило пути настроено так:
/home/* -> Backend Pool 1
/* -> Backend Pool 2
Мне никогда не удавалось подключиться к Backend Pool 1
, но я смог успешно подключиться к Backend Pool 2
на /*
, и когда я смог это сделать, переход на /home/*
все равно был бы отправлен Backend Pool 2
которого там не было. Я попытался использовать настройку Override Backend Path
в настройках HTTP, но тогда ни один маршрут не работал, и я получил ошибку 502 . Естественно, я попытался отменить эту настройку, но ничего не изменилось.
Однако в Application Insights for Backend Pool 2
я заметил, что после удаления параметра Override Backend Path
, что пул серверов получал /*
как часть запроса и, таким образом, получал ошибка 400 , поскольку этот маршрут не существует и символ не разрешен в URL-адресе (стоит отметить, что мой файл web.config в настоящее время не имеет ограничений символов для URL-адреса запроса).
Я знаю, что этот тип маршрутизации возможен, учитывая количество документов из Azure, но я занимался этой проблемой в течение двух недель и поливал каждый клочок документации и, похоже, никуда не денусь .
Итак, чтобы уточнить, мой конкретный вопрос:
Учитывая то, что я уже пробовал, я что-то упустил в своей конфигурации, что-то не так с моей конфигурацией?
Я был бы более чем рад прояснить любые моменты, которые, по вашему мнению, я пропустил.
EDIT : добавление конфигурации одного правила и его карты путей для контекста.
[
{
"backendAddressPool": null,
"backendHttpSettings": null,
"etag": "<####>",
"httpListener": {
"id": "<####>",
"resourceGroup": "<####>"
},
"id": "<####>",
"name": "HttpsPaths",
"provisioningState": "Succeeded",
"redirectConfiguration": null,
"resourceGroup": "<####>",
"ruleType": "PathBasedRouting",
"type": null,
"urlPathMap": {
"defaultBackendAddressPool": {
"id": "<####>/backendPool1",
"resourceGroup": "<####>"
},
"defaultBackendHttpSettings": {},
"defaultRedirectConfiguration": null,
"etag": "<####>",
"id": "<####>",
"name": "HttpsPaths",
"pathRules": [
{
"backendAddressPool": {
"id": "<####>/backendPool1"
},
"backendHttpSettings": {
"id": "<####>/OverrideBackendPathSettings (redirects to '/' on the backend)",
"resourceGroup": "<####>"
},
"etag": "<####>",
"id": "<#####>",
"name": "home",
"paths": [
"/home/*"
],
"provisioningState": "Succeeded",
"redirectConfiguration": null,
"resourceGroup": "<####>",
"type": null
},
{
"backendAddressPool": {
"id": "<####>/BackendPool2",
"resourceGroup": "<####>"
},
"backendHttpSettings": {
"id": "<####>/appGatewayBackendHttpSettings (sends request as is)",
"resourceGroup": "<####>"
},
"etag": "<####>",
"id": "<####>/gryphon",
"name": "gryphon",
"paths": [
"/*"
],
"provisioningState": "Succeeded",
"redirectConfiguration": null,
"resourceGroup": "<####>",
"type": null
}
],
"provisioningState": "Succeeded",
"resourceGroup": "<####>",
"type": null
},
"provisioningState": "Succeeded",
"resourceGroup": "<####>",
"type": null
}
]