错误:服务器错误 服务器遇到临时错误,无法完成您的请求。请在 30 秒后重试。(GCP)
Posted
技术标签:
【中文标题】错误:服务器错误 服务器遇到临时错误,无法完成您的请求。请在 30 秒后重试。(GCP)【英文标题】:Error: Server Error The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.(GCP) 【发布时间】:2020-10-25 22:01:36 【问题描述】:我已经按照https://cloud.google.com/compute/docs/load-balancing/http/ 上的文档配置了一个 HTTP(S) 负载均衡器
当我尝试通过与负载均衡器关联的公共 IP 地址访问该站点时。我收到一条 502 响应消息:
错误:服务器错误
服务器遇到临时错误,无法完成您的请求。
请在 30 秒后重试。
我相信这是来自负载平衡器。
任何人都对可能发生的事情有任何见解,我还应该看什么?
【问题讨论】:
【参考方案1】:难道负载均衡器依赖于您使用的是 URL 而不是 IP 地址?
可能有几个原因。
-
URL 指向负载均衡器,负载均衡器有一个服务于该 URL 的服务器 IP 地址列表;然后它选择一个服务器并转发请求。为此,它必须接收原始 URL,因为负载平衡器可能正在为多组服务器提供服务。
如果 IP 地址指向负载均衡器,它将不知道从哪组服务器中选择。如果 IP 地址指向服务器,则会绕过负载平衡器。
我能想到的就这么多了…… 果酱
【讨论】:
【参考方案2】:查看文档Troubleshooting HTTP(S) Load BalancingUnexplained 502 errors 部分:
如果 502 错误在您完成后持续超过几分钟 负载均衡器配置,很可能:
没有firewall rule configured to allow health checks。 后端的软件没有运行。要验证运行状况检查流量是否到达您的后端虚拟机,enable health check logging 并搜索成功的日志条目。
要创建允许来自 Google Cloud 运行状况检查系统(130.211.0.0/22
和 35.191.0.0/16
)的流量的入口规则,您可以使用 Cloud Console 或以下命令:
gcloud compute firewall-rules create fw-allow-health-check \
--network=default \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-health-check \
--rules=tcp
在此命令中target tag allow-health-check
用于识别虚拟机。
【讨论】:
【参考方案3】:我遇到了同样的问题。经过一天的搜索,这是一个health checker 的问题。健康测试是在TCP上,我改成HTTP,问题就解决了。
【讨论】:
以上是关于错误:服务器错误 服务器遇到临时错误,无法完成您的请求。请在 30 秒后重试。(GCP)的主要内容,如果未能解决你的问题,请参考以下文章