azure - 从azure应用程序服务访问虚拟机上的服务

标签 azure azure-web-app-service azure-virtual-machine

我们在 Azure 上有虚拟机,并且服务正在其中运行。 我们正在尝试将 MVC Web 应用程序部署到 Azure 应用程序服务,该服务使用私有(private) IP 从 VM 访问某些服务,但无法使用私有(private) IP 连接到 VM 上托管的服务。我们假设所有资源都位于同一个网络中,有人可以帮忙吗?

谢谢

最佳答案

Azure 应用服务有两种托管

  1. 专用于客户的单租户(应用服务环境)
  2. Multi-Tenancy (可在数据中心规模单元内的其他客户订阅之间共享)

如果您的应用程序托管为 Multi-Tenancy 应用程序,意味着应用程序服务 URL {WEbAppName}.Azurewebsites.net,则其面向互联网的应用程序,如果它需要连接到任何 VNET(虚拟网络)托管服务,则它需要集成到任何或相同的 VNET。

如何进行应用服务VNET集成: https://learn.microsoft.com/en-us/azure/app-service/overview-vnet-integration#regional-virtual-network-integration

应用服务与 VNET 集成后,理想情况下它可以与同一 VNET 内或对等 VNET 内的所有服务建立连接。

如何确认从应用服务到 VNET 托管资源的连接。 转到应用服务应用程序 => 高级工具或控制台 => 按顺序执行以下命令,因为 HTTP 通信是通过以下顺序发生的:

  1. nslookup {Destination_FQDN} {可选 DNS 服务器}/nameresolver {Destination_FQDN} {可选 DNS 服务器}
  2. tcpping {目标 FQDN}
  3. curl -v {DestinationFQDN}

常见场景: 如果您收到连接被拒绝的消息,则意味着其 NSG 不允许通信。 如果您收到请求超时,则意味着可能是由于防火墙或没有正确的路由到达目的地。 如果它的连接中止,则意味着它的中间设备没有传递连接。

使用 Azure 网络观察器排查连接问题:https://learn.microsoft.com/en-us/azure/network-watcher/network-watcher-connectivity-portal

关于azure - 从azure应用程序服务访问虚拟机上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49777349/

相关文章:

azure - 无法解析 U-SQL 中的 Json block 列表

azure - 创建虚拟机、对其进行镜像并删除后,可用 vCPU 配额不足

azure - 仅当Azure中不存在azurerm_resourcegroup时,如何通过terraform创建azurerm_resourcegroup?

json - 无法打开服务器上的 Json 文件

msbuild - 运行自定义 MSBuild 任务作为 git 部署到 Azure 网站的一部分

Azure 数据工厂 - Web 事件失败,错误代码为 2108

azure - 通过端口 443 远程桌面到 azure VM(由新门户 - Portal.azure.com 创建)

azure - 如何使用 Azure ARM 创建公共(public)虚拟机镜像?

python - Face API,如何在Python中验证大量人脸

azure - 我在哪里可以找到用于跟踪 api 响应的 azure 日志