【问题标题】:Why is Azure APIM redirecting to the backend service URL?为什么 Azure APIM 会重定向到后端服务 URL?
【发布时间】:2022-01-04 06:46:04
【问题描述】:

对 APIM 的调用突然开始重定向到后端服务。

在我的测试环境中,我得到 301 Moved Permanently,而对于部署到 prod 的完全相同的代码,我只得到 200。

为什么我的 APIM 返回 301?

这是 HTTP 请求(第一个请求是飞行前请求):

这是 APIM 中的设置:

【问题讨论】:

    标签: azure http azure-api-management http-status-code-301


    【解决方案1】:

    最可能的情况是这根本不是 APIM 的错,很可能 301 响应是从后端一路传来的。您可以使用 API 检查器来确保:https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-api-inspector

    默认情况下,如果后端使用 301 回复 APIM,APIM 也会简单地将 301 返回给客户端。查看响应中的位置标头指向 azurewebsites 而不是 APIM。

    您可以查看您的后端并使其不返回 301,或者您可以通过策略使 APIM 遵循重定向响应:https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#ForwardRequest。后者会更慢,因为 APIM 需要对后端进行两次调用才能获得正确的响应。

    【讨论】:

    • 我注意到 APIM 中的后端服务是 http,但重定向的 URL 是 https。后端必须有将http重定向到https的东西。
    • 在 APIM 的 Web 服务 URL 中将 http 更新为 https 已修复!感谢您为我指明正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2021-09-04
    • 2012-04-08
    相关资源
    最近更新 更多