docker - GCP 负载平衡器 : 502 Server Error, "failed_to_connect_to_backend"

标签 docker go google-cloud-platform load-balancing google-kubernetes-engine

我有一个在两个 GCP 实例上运行的 dockerized Go 应用程序,将它们与各自的外部 IP 一起使用时一切正常,但是当通过负载平衡器时,它们要么响应缓慢,要么响应 502 服务器错误。健康检查好像没问题,所以我真的不明白。

在日志中,抛出的错误是

failed_to_connect_to_backend

我已经看过关于这个问题的其他答案,但似乎没有一个能为我的案例提供答案。我无法修改应用程序的服务方式,因此这似乎不是超时问题。

最佳答案

解决负载均衡器因“failed_to_connect_to_backend”而产生的 502 响应问题。我会检查以下内容:

1) 通常,“failed_to_connect_to_backend”错误消息表示负载均衡器无法连接到后端,调查 URL 映射规则也是一个很好的起点。我还建议查看您的负载均衡器的 URL 映射,以确保正确定义主机规则、路径匹配器和路径规则并符合 this article 中的描述。 .

2) 同时检查后端实例是否耗尽了它们的资源,如果后端服务器不堪重负,它将拒绝传入请求,可能导致负载平衡器放弃它并返回您遇到的特定 502 错误。对于 Apache,您可以使用 this link和 nginx this link .此外,使用“netstat”和 watch command 检查一次存在多少已建立连接的输出。 .

3) 我还建议再次测试直接向实例发送 HTTP(S) 请求,请求与报告 502 相同的 URL。您可以在 VPC 网络中的另一个 VM 实例中进行此测试。

关于docker - GCP 负载平衡器 : 502 Server Error, "failed_to_connect_to_backend",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51474928/

相关文章:

go - 结构中的线程,函数参数对于新的 goroutine 来说太大

docker - 编译容器化 Rust 应用程序以在树莓派 4 (arm64/armv8) 上运行。无法执行 "No such file or directory"

docker - 如何获得[1002120000,1002129999]范围内的UID:GID以使其在OpenShift中运行?

bash - 无法在我的脚本中发现错误,其行为与预期不符

go - 如何制作一个只允许整数的接口(interface)?

go - 将优化标志传递给 Go 编译器?

google-cloud-platform - 从 GCP 错误报告 Webhook 触发云功能

go - 如何部署放置在子包中的 Go Google Cloud 函数?

python - google ml engine scale-tier 未在远程分布式训练中运行

python - 无法将 PostgreSQL 数据库从 docker 连接到 python