首页 > 解决方案 > 从连接到 Azure 应用程序网关的浏览器访问 WSDL 文件时,Azure VM 的私有 IP 地址作为 WSDL 文件中的地址返回

问题描述

我有一个在 tomcat 上运行的 SOAP 服务,该服务部署在 Azure 缩放集中。我有一个 Azure 应用程序网关,它的字体结束了规模集。当我尝试使用应用程序网关 DNS 通过 Web 浏览器访问 wsdl (/service?wsdl) 文件时,返回的 wsdl 具有处理其中文件的 VM 的私有 IP 地址。这可以防止端点被访问,因为它们是私有的。如果我直接访问后端 VM 的 DNS 名称的 wsdl,则返回的地址包含我向其发送请求的 VM 的公共主机名,并且可以从其公共主机名访问。当我在扩展组前面使用 AWS ELB 在 AWS 环境中部署类似的部署时,我没有遇到这个问题。

我可以通过将 tomcat 连接器配置为使用 proxyName 和 proxyPort 来指定 Azure 应用程序网关的主机名来使其工作。但是,还有其他 SOAP 客户端需要直接在同一个连接器上访问后端 VM,并且通过为连接器指定代理参数,它们也会强制它们通过 Azure 应用程序网关。

我意识到可以配置不同的 tomcat 连接器来解决这个问题,但这不是后端应用程序的最佳解决方案。

那么问题来了。是否有一些我可以更改的 Azure 应用程序网关配置设置,所以我可以像 AWS ELB 一样工作,而不必使用 proxyName tomcat 参数?

谢谢。

标签: web-servicesazuresoapwsdlaws-api-gateway

解决方案


推荐阅读