Google 云负载均衡器未将请求重定向到后端虚拟机

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

设置:

  1. Angular 网站 aaa.com 作为静态网站在存储桶中提供服务。
  2. 具有外部 IP 1.1.1.1 的虚拟机,正在运行具有一个端点 /test 的后端(nginx、 Gunicorn,django Restframework,一切都已启动并运行)。
  3. 具有外部 IP 2.2.2.2 的负载均衡器。

负载均衡器配置的路径: 主机:aaa.com,路径:/* -> 存储桶网站; 主机:aaa.com,路径:/test -> VM后端; 一切都是根据教程在谷歌网站上配置的

DNS 设置中链接到 1.1.1.1 的“A”记录(在 Namecheap 上注册的域名)

如果在浏览器中尝试http://aaa.com -> 效果很好。 如果尝试直接请求 http://2.2.2.2/test -> 效果很好。 (绕过负载均衡器) 但如果在浏览器中尝试 http://aaa.com/test 返回错误:404 未找到。 负载均衡器似乎可以工作,但无法与后端虚拟机通信。可能是什么原因?

nginx network-programming loadbalancer
1个回答
0
投票

因为您有一个规则

path: /* -> bucket website;
将所有请求重定向到存储桶网站,所以请求根本不会发送到虚拟机。

此外,您认为 404 是由负载均衡器无法与后端虚拟机通信引起的也是不正确的。 4xx范围内的所有错误都表明错误出现在客户端请求中,并且后端没有问题。 404 意味着您发送了对服务器上不存在的对象的请求。

如果后端出现问题,您将收到 5xx 范围内的错误。 负载均衡器问题最典型的错误代码是 5xx。

需要检查的一些事项:

  1. 确保为负载均衡器后端配置 HealthCheck。
  2. 登录虚拟机并检查日志以查看健康检查请求是否通过。
  3. 检查负载均衡器目标组(NEG 或 MIG)以查看后端是否正常。

此外,GCP 负载均衡器在首次配置后需要一些时间才能稳定下来。 当您第一次创建它时,您会看到一堆空响应/连接重置错误。 这些通常会在 2-3 分钟后消失。

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