gpt4 book ai didi

Azure 应用程序网关将 "/*"转发到后端池

转载 作者:行者123 更新时间:2023-12-02 02:53:08 25 4
gpt4 key购买 nike

我设置了一个 Azure 应用程序网关 Path-Based routing在两个不同的后端池之间路由。我还在其中一个池上配置了 Application Insights,稍后我将对此进行讨论。我的路径规则配置如下:

/home/* -> 后端池 1
/* -> 后端池 2

我从未能够连接到 后端池 1,但我已经能够成功连接到 /* 处的后端池 2 > 当我能够做到这一点时,前往 /home/* 仍会被发送到那里不存在的 Backend Pool 2 。我尝试使用 HTTP 设置中的覆盖后端路径 设置,但是这两种路由都不起作用,并且我会收到 502 错误。所以很自然地,我试图扭转这个设置,但什么也改变不了。

但是,我确实在后端池 2 的 Application Insights 中注意到在删除覆盖后端路径设置后,服务器池正在接收 /* 作为请求的一部分,因此收到 400 错误,因为该路由不存在并且 URL 中不允许使用该字符(值得请注意我的 web.config 文件现在没有请求 URL 字符限制)。

考虑到来自 Azure 的文档数量,我知道这种类型的路由是可能的,但我已经处理这个问题两周了,并且已经翻阅了所有文档片段,但似乎没有任何进展.

为了澄清,我的具体问题是:

考虑到我已经尝试过的事情,我的配置中是否缺少某些内容,我的配置是否有问题?

我非常乐意澄清您认为我遗漏的任何要点。

编辑:添加一条规则的配置及其上下文的路径映射。

[
{
"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
}

]

最佳答案

规则按照指定的顺序进行评估。您可能在基于路径的规则之前有一个基本规则。这将导致基本规则拦截所有流量并路由到该规则中指定的后端池。如果情况并非如此,那么粘贴规则配置可能会有所帮助。

--编辑

我在我们的监控系统中查看了您的配置详细信息。这是因为探针配置不正确。您在探测器中有/* ,这是无效的。探测器应指向返回 200 http 响应代码的现有页面。此外,您不需要路径覆盖并且可以将其删除。正确配置探测器后,请确保后端运行状况报告显示所有后端服务器运行状况良好。然后您的基于路径的规则将按预期工作。

关于Azure 应用程序网关将 "/*"转发到后端池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com