当应用程序发送 401 时,Azure 应用程序网关抛出 502

Azure application gateway throws 502 when application sends 401

Azure 应用程序网关显示 502 bad gateway error,而应用程序 return 显示 401500 errors。它应该发送应用程序发送的任何内容,但默认情况下它发送 502。知道会发生什么以及任何配置或代码更改建议吗?

编辑: 我们正在为我们的 API 服务使用 node js。当客户端尝试在没有任何 auth header 的情况下访问端点时,服务将 return 401 error。这个错误在通过应用网关时转化为502

一般工作流程

当应用程序网关收到大于 399 的状态代码时,它将认为服务器存在一些问题,并将服务器从池中删除。一段时间后,它将检查应用程序状态,如果它返回的状态代码小于 400,则将服务器添加到池中。

默认情况下,应用程序网关将配置为通过发出 HTTP/HTTPS 请求来检查应用程序运行状况。

原因

应用程序可能会遇到任何错误或任何身份验证错误可能会导致不同的错误代码。这可能导致应用程序网关导致 502 错误。

探针

我们可以配置一个特殊的file/end点来检查application/database健康状况。这个配置应该在探测文件中。

有用的资源

https://azure.microsoft.com/en-us/documentation/articles/application-gateway-create-probe-classic-ps/

https://azure.microsoft.com/en-us/documentation/articles/application-gateway-probe-overview/

希望对您有所帮助!