客户端未收到来自应用程序网关的响应超时并收集 400 httpStatus

问题描述 投票:0回答:1

我有一个 NodeJS Express API。 它公开了一个端点,需要多部分表单来收集文件。 它部署在 AKS 实例中。 AKS 位于应用程序网关后面。

客户端正在对上述端点执行多个串行调用。 在某个时刻,在 POST 请求 N of M 时,其中 N < M, it stops receiving an answer, simply timing out. There's no pattern in the failing requests. The application gateway logs (AzureDiagnostics table) display a record with dimension 'httpStatus_d' valued 400 and no 'serverStatus_s' dimension. The API logs display no request, meaning the request is not being forwarded by the application gateway.

我删除了 WAF_v2 并将 AGW 重新部署为 Standard_v2 层(没有 WAF,因此此时任何策略都不应阻止请求),但仍然遇到该问题。

我做了所有我能想到的实验,但没有找到解决方案。 这只是为了了解 AGW 发生了什么......

azure timeout azure-application-gateway http-status-code-400
1个回答
0
投票

客户端未收到来自应用程序网关的响应超时并收集 400 httpStatus

一般来说,客户端配置也可能发生此类问题。检查您的 NodeJS API 是否在 AKS 集群中正确扩展。

我们可以在您的应用程序网关上调整此

maxRequestBodySize
,以使用 AzureCLI 处理更大的文件上传。

az network application-gateway http-settings update \
      --gateway-name myAppGateway \
      --resource-group myResourceGroup \
      --name appGatewayBackendHttpSettings \
      --max-request-body-size 10485760 # For 10MB

我们必须确保 AGW 上的客户端请求和超时以及后端超时设置将有助于实现此目标。

az network application-gateway http-settings update \
      --gateway-name myAppGateway \
      --resource-group myResourceGroup \
      --name appGatewayBackendHttpSettings \
      --timeout 180 # Increase to 3 minutes, or adjust as needed

参考:

https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-troubleshooting-502?source=recommendations

客户端未收到应用程序网关的响应超时并收集 400 httpStatus - Microsoft 问答Sina Salam 回答

https://learn.microsoft.com/en-us/azure/application-gateway/monitor-application-gateway-reference#resource-logs

© www.soinside.com 2019 - 2024. All rights reserved.