Azure应用网关后端实例异常引发502错误求助
Azure应用网关后端实例不健康问题排查与解决建议
问题现象
你的一个或多个后端池中的所有实例均处于不健康状态。尝试访问应用网关后的应用时会出现502错误,请检查后端健康状况并解决问题。
已尝试通过Azure CLI重启网关,但问题未解决:
~$ az network application-gateway stop -n <ap-gw> -g <rs-gp> ~$ az network application-gateway start -n <ap-gw> -g <rs-gp>
执行健康检查命令后,后端实例状态为Unhealthy,具体结果如下:
$ az network application-gateway show-backend-health --resource-group <rs-gp> --name <application-gateway> { "backendAddressPools": [ { "backendAddressPool": { "backendAddresses": null, "backendIpConfigurations": null, "etag": null, "id": "/subscriptions/subscriptionsID/resourceGroups/<application-gateway>/providers/Microsoft.Network/applicationGateways/<application-gateway>/backendAddressPools/dev-silverlight", "name": null, "provisioningState": null, "resourceGroup": "<application-gateway>", "type": null }, "backendHttpSettingsCollection": [ { "backendHttpSettings": { "affinityCookieName": null, "authenticationCertificates": null, "connectionDraining": null, "cookieBasedAffinity": null, "etag": null, "hostName": null, "id": "/subscriptions/subscriptionsID/resourceGroups/<application-gateway>/providers/Microsoft.Network/applicationGateways/<application-gateway>/backendHttpSettingsCollection/HTTPS-Resource", "name": null, "path": null, "pickHostNameFromBackendAddress": null, "port": null, "probe": null, "probeEnabled": null, "protocol": null, "provisioningState": null, "requestTimeout": null, "resourceGroup": "<application-gateway>", "trustedRootCertificates": null, "type": null }, "servers": [ { "address": "pvIP", "health": "Unhealthy", "healthProbeLog": "无法连接到后端服务器。请检查是否有NSG/UDR/防火墙阻止了对服务器的访问。检查应用是否在正确的端口上运行。", "ipConfiguration": null } ] } ] } ] }
解决建议
- 排查网络阻断因素:
- 检查后端服务器所在子网的NSG规则,确保允许应用网关子网的流量访问后端服务的目标端口(如80/443或自定义端口)。
- 验证路由表(UDR)配置,确认应用网关到后端服务器的路由有效,未被错误导向防火墙或其他阻断设备。
- 若后端服务器配置了防火墙(Azure防火墙或第三方防火墙),需放行应用网关的IP范围或子网流量。
- 确认后端服务可用性:
- 登录后端服务器,检查应用服务是否正常启动,监听端口是否与应用网关后端HTTP设置中的端口一致。
- 使用
netstat -an(Windows)或ss -tulpn(Linux)命令,确认目标端口处于监听状态。 - 从应用网关所在子网的测试虚拟机发起telnet或curl请求,直接测试与后端服务器端口的连通性。
- 校验健康探针配置:
- 确认应用网关健康探针的路径正确,后端服务器能对探针请求返回200状态码(如探针路径为
/health,需确保该端点正常响应)。 - 若使用HTTPS探针,检查后端服务器的SSL证书是否有效,应用网关是否已上传对应的信任根证书(自签证书需手动上传)。
- 调整探针的超时时间和重试次数,避免因后端服务短暂响应延迟导致的误判。
- 确认应用网关健康探针的路径正确,后端服务器能对探针请求返回200状态码(如探针路径为
- 检查后端池与HTTP设置:
- 验证后端地址池中的服务器IP/FQDN是否正确,无拼写错误或IP变更情况。
- 确认后端HTTP设置的协议(HTTP/HTTPS)、端口与后端服务完全匹配。
内容的提问来源于stack exchange,提问作者Tdl Matias
相关产品推荐
相关产品推荐

