如何向 Azure 应用程序网关后端池添加路径?

     2023-03-28     101

关键词:

【中文标题】如何向 Azure 应用程序网关后端池添加路径?【英文标题】:How to add path to an Azure App Gateway Backend Pool? 【发布时间】:2018-09-30 22:35:58 【问题描述】:

我有 2 个不同路径的 WebAPI,如下所示:

xx.xxx.xx.xxx/用户

xx.xxx.xx.xxx/角色

yy.yyy.yy.yyy/文档

我尝试使用基于路径的重定向设置 Azure App Gateway 以实现此目的:

myApiGateway.com/v1/Users

myGateway.com/v1/Roles

myGateway.com/v1/Documents

但在后端池中,我无法使用 xx.xxx.xx.xxx/path 等额外路径配置 IP(或 FQDN)。

更多信息更新:

在基于路径的规则配置中,它看起来像

/v1/Users/* -> 池 X (xx.xxx.xx.xxx)

/v1/Roles/* -> 池 X (xx.xxx.xx.xxx)

/v1/Documents/* -> 池 Y (yy.yyy.yy.yyy)

我的前端 API 使用者需要一个且唯一的 URL,例如

http://myApiGateway.com/v1/

他们不希望去http://myApiGateway.com/v1/api-x/ 获取用户和角色,而去http://myApiGateway.com/v1/api-y/ 获取文档。

现在我认为 api-x 和 api-y 在某种程度上不是设计方面的最佳实践。

对此有任何想法、建议和建议,我将不胜感激。谢谢!

【问题讨论】:

您是否已经尝试过 xx.xxx.xx.xxx/Users/* ? 是的,我试过了,但它无效。应用程序网关后端池仅允许 IP 或 FQDN。 【参考方案1】:

应用程序网关的后端池只能是 IP 或 FQDN。我认为您需要的是基于路径的重定向:https://docs.microsoft.com/en-us/azure/application-gateway/tutorial-url-redirect-powershell

【讨论】:

感谢您的回复,我实际上也在使用基于路径的重定向进行配置。我认为我的问题与它的设计有关。【参考方案2】:

您应该配置path based routing。您应该有一个名为 X 的后端池,其服务器可以接受 /v1/Users/*/v1/Roles/* 的请求。您应该有另一个名为 Y 的后端池,其服务器可以接受来自 URI 路径 /v1/Documents/* 的请求。然后,您可以让一个侦听器接受来自http://myapiGateway.com 的流量。然后,您将添加具有 3 个路径的基于路径的路由规则 - 将 /v1/Users/*/v1/Roles/* 流量引导到池 X 和 /v1/Documents/* 到后端池 Y。

【讨论】:

【参考方案3】:

我通过为每条路由使用不同的 HTTP 设置记录来实现这一点。在 HTTP 设置中有另一个“路由”属性,它只在 Powershell 中可见。您可以参考这个post 了解一些简报。

所以基本描述如下:

“/用户”路由

Backend Pool: xx.xxx.xx.xxx HttpSettings.Route: "/Users" Path-based rule: "/v1/Users/*

“/角色”路由

Backend Pool: xx.xxx.xx.xxx HttpSettings.Route: "/Roles" Path-based rule: "/v1/Roles/*

“/Documents”路由

Backend Pool: yy.yyy.yy.yyy HttpSettings.Route: "/Documents" Path-based rule: "/v1/Documents/*

如果我有例如另一个在根级别服务的“Tickets”API,我会:

Backend Pool: zz.zzz.zz.zzz HttpSettings.Route: "/" Path-based rule: "/v1/Tickets/*

【讨论】:

具有公共 IP 的应用程序网关后面的 Azure 容器组

】具有公共IP的应用程序网关后面的Azure容器组【英文标题】:AzureContainerGroupbehindapplicationgatewaywithpublicIP【发布时间】:2021-07-1823:19:48【问题描述】:我有一个具有前端公共IP地址的应用程序网关,通过其子网连接到VNET,并使用... 查看详情

如何使用 NSG 限制从 Internet 直接访问 Azure Public LoadBalancer 后端池 VM

】如何使用NSG限制从Internet直接访问AzurePublicLoadBalancer后端池VM【英文标题】:HowtorestrictdirectaccessfrominternettoAzurePublicLoadBalancerbackendpoolVMwithNSG【发布时间】:2020-04-1920:19:27【问题描述】:作为标题中的问题,我在AzureCloud上设置了... 查看详情

azure应用程序网关证书(代码片段)

AzureAppGateway 证书问题最近处理一个应用程序网关的工单,突发其想,后端池中的两台计算机可否一台Windows,另外一台Linux。网上搜罗一番,还真可以。其实核心点在于证书格式不同: Windows: .pfx、.cer Linux:.crt、.k... 查看详情

Azure 应用程序网关与 API AppService 没有 API 网关

】Azure应用程序网关与APIAppService没有API网关【英文标题】:AzureApplicationGatewaywithApiAppServicewithoutAPIgateway【发布时间】:2020-01-1522:31:54【问题描述】:如何在后端池中使用应用程序网关和API。请注意,由于成本和API很少,我们不想... 查看详情

azure负载均衡上遇到的坑-12-28

...负载均衡器2.新建完负载均衡器之后,接下来配置,配置后端池,运行状况探测,负载均衡规则。在添加后端池的时候,没有可用性集,返回主机列表,找到需要添加到后端池的主机,看到这里凉了,不能使用azure的负载均衡做... 查看详情

azure-如何排查应用程序网关返回httpcode502或客户端得到应用程序网关响应慢的问题(代码片段)

问题描述经过初步排查,应用程序网关本身工作正常,同时也排除了Azure平台网络的延迟。出现的现象通常是部分的URL响应正常、部分URL响应慢或是返回HTTPCode502。问题分析通过分析访问日志判断应用访问以及响应情况(有关如... 查看详情

我们如何向一个本地数据网关添加多个订阅?

】我们如何向一个本地数据网关添加多个订阅?【英文标题】:HowcanweaddmultiplesubscriptionstooneOn-PremiseDataGateway?【发布时间】:2020-05-2315:30:27【问题描述】:我们希望将Azure分析服务连接到托管实例。有3种不同的订阅,Develop、Pre-Pr... 查看详情

Azure 应用程序网关 - 检查后端节点子集的运行状况

】Azure应用程序网关-检查后端节点子集的运行状况【英文标题】:AzureApplicationGateway-checkhealthonsubsetofbackendnodes【发布时间】:2021-06-0617:36:42【问题描述】:我有一个托管一些相同应用程序的服务结构集群。该应用程序有两个主要... 查看详情

Azure API 网关根据租户 ID 将 url 重新路由到不在 Azure 上托管的后端应用程序?

...reAPI网关根据租户ID将url重新路由到不在Azure上托管的后端应用程序?【英文标题】:AzureAPIgatewayrerouteurlsbasedontenantIdtobackendapplicationwhicharenothostedonAzure?【发布时间】:2020-05-3111:08:37【问题描述】:我有以下要求。目前,我们为每... 查看详情

Azure APIM 网关正在修剪 api url 中的尾部斜杠

】AzureAPIM网关正在修剪apiurl中的尾部斜杠【英文标题】:AzureAPIMGatewayistrimmingthetrailingslashintheapiurl【发布时间】:2021-09-1623:53:19【问题描述】:我需要向APIM中托管的API添加斜杠。但是,APIM网关在将调用转发到后端服务时似乎正... 查看详情

如何在 api 网关架构中获取 JWT 令牌

...置具有oauth(jwt令牌)安全性的(azure)api网关。外部合作伙伴/应用程序向网关上发布的api端点发送请求,其中包括由网关针对AzureAD验证的标头中的有效JWT令牌。验证后,请求将路由到后端服务。这 查看详情

如何使用 Azure 前门主机名作为托管在虚拟机上的后端网站的域名

...AzureFrontDoor的解决方案,然后是一个以虚拟机作为后端的应用程序网关。我们想使用AzureFron 查看详情

Azure NSG 未按预期工作

...发布时间】:2018-10-2512:12:28【问题描述】:我有一个带有后端池的Azure外部负载平衡器,其中包含1个kubernetes主服务器,并且在端口443上有一个负载平衡规则。我添加了一个优先级为500的规则,以拒绝来自Internet的443端口上的所有... 查看详情

如何向 Azure 虚拟机添加内存?

】如何向Azure虚拟机添加内存?【英文标题】:HowcanIaddmemorytoanAzurevirtualmachine?【发布时间】:2014-03-1720:51:39【问题描述】:是否可以向Azure虚拟机添加“自定义”大小的内存?例如,我使用的是中等大小-2核,4GBRAM,我想要8GBRAM... 查看详情

如何向 azure b2c 访问令牌添加自定义声明?

...0111:14:45【问题描述】:我有一个AzureActiveDirectoryB2C帐户。应用程序的客户端和Webapi已在此处注册。还有一些用户流程,例如,用于注册和登录。受b2c令牌保护的webapi(aspnetcorewebapi)。用户登录系统后的逻 查看详情

12.azure应用程序网关(下)

接下来我再把标准应用程序网关升级到WEB应用程序防火墙Web应用程序防火墙(WAF)是应用程序网关的功能,可以对Web应用程序进行集中保护,避免其受到常见的攻击和漏洞伤害。?无需修改后端代码即可保护Web应用程序免受Web漏洞和... 查看详情

12.azure应用程序网关(下)

接下来我再把标准应用程序网关升级到WEB应用程序防火墙Web应用程序防火墙(WAF)是应用程序网关的功能,可以对Web应用程序进行集中保护,避免其受到常见的攻击和漏洞伤害。无需修改后端代码即可保护Web应用程序免受Web漏洞和... 查看详情

azureloadbalancer:简介

...VM1的22端口;映射前端IP的20022端口到后端VM2的22端口。对应用程序透明协议握手始终在客户端与后端池中的虚机实例之间直接发生。对入站请求做出的响应始终是来自虚拟机的响应。当请求抵达虚拟机时,也会保留原始的源IP地... 查看详情