【问题标题】:Azure API Management - Why is Host header required for requests?Azure API 管理 - 为什么请求需要主机标头?
【发布时间】:2020-05-05 18:08:17
【问题描述】:

我在 API 管理中设置了一个简单的 API。它是一个内部 API,连接到 VNet。

我没有为它设置 DNS,所以我正在通过内部 IP 地址对其进行测试。

请求如下所示:

GET http://10.x.x.x/query?id=3

如果我只发送没有附加标头的请求,我会收到 503 错误。

如果我使用 API 的域名添加 Host 标头,如下所示:

GET http://10.x.x.x/query?id=3
Host: apixxxxx.azure-api.net

然后它起作用了,我收到了 200。

为什么会发生这种情况,如何禁用所需的 Host 标头?

或者我如何才能从将使用自己的 Host 标头的系统发出成功的请求?

【问题讨论】:

  • 还有问题吗?它解决了你的问题吗?

标签: azure azure-api-management azure-virtual-network


【解决方案1】:

当您使用内部虚拟网络模式时,所有服务端点仅在您控制访问的虚拟网络中可见。它还包含请求。私有 IP 地址只能在虚拟网络内部访问。并且APIM可以通过域名访问,您可以通过配置路由规则将请求以Internal模式路由到后端。看看DNS configuration。所以需要给主机设置APIM域名才能访问。

【讨论】:

  • 是的,我知道如果我设置了 DNS,问题就会得到解决。我试图在不设置 DNS 的情况下这样做,但看起来这不是一个选项。
  • @Errator 是的,如果您使用内部网络而不配置 DNS,它将无法访问。如果它适合你,请接受它作为答案。
猜你喜欢
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
相关资源
最近更新 更多