GCP 负载均衡器 - 主机和路径规则不起作用

Sah*_*nna 6 google-cloud-platform google-cloud-load-balancer

我有一个虚拟机,上面托管了 3 个应用程序。所有应用程序都可以与虚拟机的公共 IP 和端口(例如 34.44.55.66:{port})正常工作

  1. React JS网站1(端口3001)
  2. React JS网站2(端口3002)
  3. Express JS API 1(端口 3003)

我现在希望将所有这些都放在云负载均衡器后面。我已经为此做了以下工作。

  • 创建三个后端服务(每个应用程序一个)
  • 创建的主机和路径规则如下 在此输入图像描述

负载均衡器已创建,没有任何问题。但是,只有默认路径才能正常工作。请参阅下面的详细信息(假设LB IP为55.66.77.88)。

  • 55.66.77.88:Website-1打开没有任何问题(默认路径)

  • 55.66.77.88/website-1:Website-1 在浏览器控制台中显示错误消息 在此输入图像描述

  • 55.66.77.88/website-2:Website-2 在浏览器控制台中显示错误消息 在此输入图像描述

  • 55.66.77.88/api-1:API-1 在浏览器控制台中显示错误消息

    GET http://55.66.77.88/api-1 404 (Not Found)

每当我使用默认路径映射上述任何后端服务时,它们都可以正常工作。但是,当在浏览器中输入路径时,它们不会按预期工作。

任何建议将被认真考虑。

gui*_*ere 10

请记住,在您的配置中,没有 URL 重写操作。这意味着你的要求

55.66.77.88/website-1/index.html
Run Code Online (Sandbox Code Playgroud)

会沿着这条路径到达后端

# Backend bucket example
gs://my-bucket/website-1/index.html

# Instance group backend
<backend>/website-1/index.html

# Network Endpoint Group backend
<NEG>/website-1/index.html
Run Code Online (Sandbox Code Playgroud)

转发提供给负载均衡器的基本路径。当您在转发中没有其他路径时,它可以工作(根路径的情况55.66.77.88/

您可以覆盖高级模式下的行为,并且可以为每个规则定义 URL 重写。


您可以在控制台中这样定义重写规则

  • 点击高级配置

  • 设置默认配置(任何域、任何路径) 在此输入图像描述

  • 然后点击添加主机和路径规则

  • 像你一样在主机中输入*

  • 然后单击路径规则部分的铅笔以默认定义规则。再次默认选择您的后端。没有特殊重写,它是默认路径。 在此输入图像描述

  • 现在单击添加路径规则。

  • 添加您的匹配路径。并且只有 / 在重写 URL 部分(如果后端依赖主机名,您可以重写您的主机,但这似乎不是您的情况)

在此输入图像描述

对所有后端执行此操作并进行测试(用 3 - 5 分钟将更新传播到边缘节点)