GCP负载平衡器:502服务器错误,“ failed_to_connect_to_backend”

时间:2018-07-23 08:53:18

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

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

在日志中,引发的错误是“ failed_to_connect_to_backend”。我已经看到了有关此问题的其他答案,但是似乎没有一个答案可以满足我的情况。我无法修改应用程序的提供方式,因此这似乎不是超时。

3 个答案:

答案 0 :(得分:0)

要对由于“ 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实例中进行此测试。

答案 1 :(得分:0)

检查您的后端是否阻止了Google的云CDN IP地址。可以在以下地址找到这些地址:https://cloud.google.com/compute/docs/faq#find_ip_range

答案 2 :(得分:0)

这不止一次发生在我身上,我在服务器上使用apache,问题不在于CPU,而在于配置,

我将apache mpm_eventphp-fpm结合使用,并且有许多设置会限制您希望apache和fpm允许的最大请求量。

在我的情况下,我将Apache MPM配置MaxRequestWorkers从默认值150增加到600,并将PHP FPM配置pm.max_children增加到80(我不记得默认值是多少这里)

这可以按预期工作,希望它可以帮助您推断到自己的堆栈中。