Azure API 管理 - 为什么请求需要主机 header?

Azure API Management - Why is Host header required for requests?

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

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

请求如下所示:

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

如果我只是发送请求而没有附加 headers,我会收到 503 错误。

如果我用 API 的域名添加一个 Host header,像这样:

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

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

为什么会发生这种情况,如何禁用所需的主机 header?

或者我怎样才能从一个将使用自己的主机的系统发出成功的请求header?

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