我想在Azure中的API管理和应用程序网关之间建立连接。请有人可以提供逐步的解决方案。
不确定我是否理解正确,但为什么应用程序网关不支持静态 IP 地址。这不是对它的限制吗?
设想:
配置 Azure 应用程序网关以将流量路由到不同的 Azure Web 应用程序,以利用 Web 应用程序防火墙 (WAF)。
初始配置工作正常,只是浏览器中的最终 URL 是 {mysite}.azurewebsites.net。我希望这是自定义域名 {subdomain}.{mysite}.com。这是通过将后端池绑定到应用程序服务来配置的。将其更改为 FQDN 不起作用。下面的屏幕截图。
CNAME 已指向网关。
期望的结果
当有人点击 {subdomain}.{mysite}.com(已配置为指向网关)时,我应该得到 {subdomain}.{mysite}.com 而不是 {mysite}.azurewebsites.net
当前设置:
网关配置了多站点侦听器,其规则指向后端池,并且还绑定到 http 设置。
侦听器正在侦听 {subdomain}.{mysite}.com
以下链接提供了一些部分答案/配置,但没有一个对我有用。 应用程序网关 - 502 错误
https://learn.microsoft.com/en-us/azure/application-gateway/create-web-app
以下是使用 azure 门户 UI 在 Azure 应用程序网关和 WAF(Web 应用程序防火墙)后面配置具有自定义域的 azure 应用服务的步骤列表。
使用以下设置配置运行状况探测器
配置 Http 设置
配置监听器
配置基本规则
我有一个包含多个实例的 VMSS,其中部署了一个 java 应用程序。VMSS 连接到应用程序网关。网关启用了会话亲和性。
是否可以覆盖或告诉网关使用由java应用程序创建的cookie?
我需要它的原因是,当请求到达具有多个参数的应用程序网关时,处理是由java应用程序完成的。此处理会创建用户重定向到的唯一 ID 记录。
当此重定向请求到达应用程序网关时,网关将请求发送到另一台不存在唯一 ID 的服务器,从而引发错误。
我的想法:当请求到达网关并到达java程序时,我创建一个包含一些信息的cookie。cookie 被发回,当请求重定向时,我使用相同的 cookie 来识别服务器。
这可能吗?
我可以使用应用程序 cookie 并告诉应用程序网关使用该 cookie 来识别服务器吗?
azure session-cookies azure-application-gateway azure-vm-scale-set
我使用 Azure 应用程序网关 v2 将流量路由到后端池,该后端池包含运行某些托管 aspnet core webapi 的 docker 容器的虚拟机。应用程序正在端口 443 中列出。网关侦听器配置为接受 HTTPS 连接。还添加了 pfx 证书。网关的HTTP设置配置如下:

希望我已经为该设置提供了正确的根证书。我已按照此处所述导出证书: https://learn.microsoft.com/de-de/azure/application-gateway/certificates-for-backend-authentication
当使用 C# 应用程序调用 api 或在浏览器中打开特定 URL 时,连接似乎是可信的。
但是,当我使用带有 endabled SSL 证书验证的邮递员调用 api 时,出现错误。 错误:无法验证第一个证书
我在 digicert.com 上进行 chekc 时获得了更多信息。
TLS 证书不受信任 该证书未由受信任的机构签名(根据 Mozilla 的根存储进行检查)。如果您从受信任的机构购买了证书,则可能只需要安装一个或多个中间证书。请联系您的证书提供商以获取针对您的服务器平台执行此操作的帮助。
我真的很想解决这个问题。非常欢迎所有有用的提示。生产环境在 Windows Server 上运行,没有网关,但相同的证书有效。所以问题肯定出在网关配置的某个地方。
我的用例是多个具有不同生命周期的 AppService 应用程序位于单个应用程序网关后面。每当我添加新应用程序时,我想添加一个新的侦听器、新的多站点路由规则和一个新的后端池,而无需拆除并重新创建网关。
最初,我的计划是为共享基础设施提供一个 Terraform 配置,该配置创建一个框架应用程序网关,然后使用单独的特定于应用程序的 Terraform 配置来为每个应用程序添加侦听器、后端地址池和路由规则到此网关。但用 TF 似乎不可能完成。
我可以使用 Azure CLI 或 Portal 将侦听器、路由规则和后端池清楚地添加到现有网关。有没有办法用 Terraform 来做到这一点?
无论我是否有侦听器 (443) 和规则,访问https://www.example.com时看到的错误是:
403 - Forbidden
You don't have permission to access / on this server.
Run Code Online (Sandbox Code Playgroud)
如果我在端口 443 上添加侦听器,附加有效的证书和规则,我会收到相同的错误消息。如果我挖掘 www.example.com,我可以看到它正在解析为应用程序网关的公共 IP。
http://www.example.com通过端口 80 上的侦听器按预期工作,并且规则将流量定向到托管 Apache 的后端虚拟机。
我应该补充一点,这是使用 Azure 门户进行设置的。我应该使用 PowerShell 吗?一些论坛认为该门户网站不稳定。
我们有一个启用了 WAF 功能的 Azure 应用程序网关 V2 设置。当我们突然遇到麻烦时,所有后端池(在我们的例子中是 3 个)的运行状况开始显示不健康,并且当我们检查后端运行状况时显示错误:
后端服务器证书已过期。请上传有效证书。
现在,相同的证书应用于应用程序网关和后端池服务器/VM。我们必须为后端服务器切换到非 SSL 端口才能解决问题。
我无法查明问题,因为如果应用于后端池虚拟机的任何证书过期,一旦应用于应用程序网关本身,就会给出相同的错误。有人可以帮助确定问题的实际根本原因以及为什么仅在后端池级别显示错误吗?
非常重要的是,打开后端池 URL 时浏览器中显示的证书仍显示距离过期 2 个多月的时间。
谢谢。
security ssl azure ssl-certificate azure-application-gateway
我创建了一个新集群,创建了一个应用程序网关,然后按照教程安装了 AGIC。然后我使用以下配置配置入口控制器:
# This file contains the essential configs for the ingress controller helm chart
# Verbosity level of the App Gateway Ingress Controller
verbosityLevel: 3
################################################################################
# Specify which application gateway the ingress controller will manage
#
appgw:
subscriptionId: <<subscriptionid>>
resourceGroup: experimental-cluster-rg
name: experimental-cluster-ag
usePrivateIP: false
# Setting appgw.shared to "true" will create an AzureIngressProhibitedTarget CRD.
# This prohibits AGIC from applying config for any host/path.
# Use "kubectl get AzureIngressProhibitedTargets" to view and change this.
shared: false
################################################################################ …Run Code Online (Sandbox Code Playgroud) 我无法找到一种方法来通过 terraform 使用私有 IP 创建应用程序网关,而无需手动插入硬编码的 IP 私有地址。
我试过:
仅当使用硬编码 IP 地址创建应用程序网关时,它才有效。
这个解决方案对我来说还不够好,因为我们处理许多环境,并且我们不想让开发人员记住添加私有 IP。
有好的解决办法吗?
terraform azure-application-gateway terraform-provider-azure