问题标签 [google-cloud-load-balancer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
174 浏览

google-cloud-platform - Google Cloud Storage 网络托管:将 http 重定向到 https

我在 Google Cloud Storage 存储桶上托管了一个静态网站。存储桶被命名为我的域: www.example.com.

我在 GCP 上还有一个 Cloud Load Balancer 转发规则,我的存储桶配置为其后端。我想配置我的负载均衡器,以便对 HTTP 协议的每个请求都重定向到 HTTPS。

实现这种行为的最简单方法是什么?

谢谢

0 投票
1 回答
1043 浏览

google-cloud-platform - 将 Cloud Armor 与 Cloud Run 结合使用并避免绕过

引用https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless#enabling

虽然可以使用 Cloud Run(全托管)、Cloud Functions 和 App Engine 后端为后端服务配置 Google Cloud Armor,但此功能存在一定的限制,尤其是 Cloud Run(全托管)和 App Engine。有权访问 Google Cloud 分配给这些服务的默认 URL 的用户可以绕过负载平衡器并直接访问服务 URL,从而绕过任何已配置的 Google Cloud Armor 安全策略。

避免攻击者针对 Cloud Run URL ( *.run.app) 绕过 Cloud Armor 的最佳方法是什么?

通常我会让 Cloud Run 只能由服务帐户调用,但 Cloud Load Balancer 不能使用服务帐户来调用 Cloud Run。另一种方法是将 Cloud Load Balancer 配置为在标头中使用令牌,并将在 Cloud Run 中运行的应用配置为仅接受具有正确标头/令牌的调用,但我不希望在应用中这样做。

0 投票
1 回答
405 浏览

google-cloud-platform - 删除 Google 存储桶作为负载均衡器后端的大小写敏感性

我们已将数据上传到 Google 存储桶,并将该桶配置为 Google 负载均衡器的后端。因此,我可以通过https://images.mywebsite.com访问这些文件。

但是,我们的文件名和目录同时包含大写和小写字符。

Google 存储桶似乎区分大小写,因此如果文件另存为IMAGE.jpg并且我们要求image.jpg我们收到以下错误:

NoSuchKey

指定的键不存在。

有没有办法从我们的 Google 存储桶中删除区分大小写? 如果没有,是否有任何方法可以解决此问题,以便客户可以以不区分大小写的方式访问我们的文件?

例如,我们是否可以将存储桶中的所有文件重命名为小写,然后在负载均衡器上创建一些规则以重定向到小写名称?

0 投票
0 回答
188 浏览

google-cloud-platform - GCP:如何检查日志以了解负载均衡器后端健康状态的变化

我正在使用 GCP 的非托管 HTTP 外部负载平衡器,并且我有几个 Nginx 服务器在其后端运行。

我想检查日志以了解 Nginx 服务器健康状态的变化,但找不到这样做的方法。

首先,我为分配给后端服务的运行状况检查启用了日志记录。然后,我停止了一台 Nginx 服务器的服务来测试它。然后我在 Logs Explorer 的 Resource Type 中选择了 GCE Health Check,但只出现了与健康检查本身的创建、更新和删除相关的日志。

接下来,我为后端服务启用了日志记录并做了同样的实验。但是,同样的,只出现了与后端服务本身的创建、更新和删除相关的日志。

我有三个问题:

  1. 健康检查的日志不会记录被监控服务的健康状态的变化吗?
  2. 后端服务的日志不会记录属于后端的实例的健康状态变化吗?
  3. 如何在日志中检查每个 Nginx 服务器何时变得不健康以及何时变得健康?
0 投票
1 回答
860 浏览

google-cloud-platform - GCP 负载均衡器/API 网关 CORS 问题

我有一个托管在 Google Cloud Run 上的 API,并在网关前面使用 API Gateway 和 GCP 的负载均衡器公开。该 API 应该由多个租户使用,因此请求将来自不同的来源。

现在,每当我尝试从另一个租户域访问 API 时,由于 CORS 问题,我会收到 404。

当我第一次设置它时,我收到一个错误,即Access-Control-Allow-Origin响应中不存在。然后,我更新了负载均衡器配置以添加Access-Control-Allow-Origin: '*'到响应的标头中。

现在,设置标题后,我仍然收到 404 但错误消息更改为Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

有没有办法可以将负载均衡器设置为不因 CORS 问题而阻止请求?

0 投票
1 回答
892 浏览

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

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

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

我现在想将所有这些都放在Cloud Load Balancer后面。我已经为此做了以下事情。

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

负载均衡器的创建没有任何问题。但是,只有默认路径可以正常工作。请参考下面的详细信息(将 LB IP 视为 55.66.77.88)。

  • 55.66.77.88:网站 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)

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

任何建议将被认真考虑。

0 投票
1 回答
492 浏览

networking - 使用来自其他项目的 NEG 作为 Google Cloud Load Balancer 后端

如何使用来自其他 Google Cloud 项目的网络端点组 (NEG) 作为负载均衡器后端?有什么解决办法吗?

0 投票
2 回答
672 浏览

google-app-engine - 谷歌负载均衡器到 Cloud Run 给出 404

我按照这些说明设置了负载平衡器。网络端点组指向 AppEngine 应用程序,一切运行顺利。现在,我将同一个 AppEngine 应用程序移植到 Cloud Run 服务。它使用 xxxx.run.app URL 完美部署和运行。然后我更新了网络端点组以使用 Cloud Run 而不是 AppEngine,几分钟后调用负载均衡器时出现此错误:

(还有那个坏掉的小机器人:))

我没有看到云中运行的日志,因此这意味着它甚至没有进入云运行实例。我把它改回 AppEngine 几分钟后就可以正常工作了。

我还需要为 Google Cloud Run 设置什么其他或不同的设置吗?

谢谢!

0 投票
0 回答
164 浏览

google-cloud-platform - GKE 多区域工作负载未平衡到所有区域

我的 GKE 集群遇到问题。

我有一个工作负载在集群上运行,节点跨多个区域,但似乎从最近(2 月 15 日上午 7 点左右)开始,大多数(~90%)流量仅被定向到三个区域中的一个(eu-west2 a,公元前)。我尝试禁用正在使用的区域,但流量大多只是定向到另一个区域。c区从来没有流量,因为我一直在监控它。

当只有 2/8 的 Pod 处理所有流量而其他 Pod 处于空闲状态时,我注意到了这一点,这确实导致了服务失败,我假设由于整体 CPU 限制低于自动缩放阈值。

在此处输入图像描述 负载均衡器监控

不确定这是 k8 的 1.18.12-gke.1210 更新的问题还是我的配置问题,尽管我对这个特定服务的配置在大约 3 个月内没有改变。打算尝试下降到 1.18.12-gke.1206,我想我会先在这里问这是否是一个无关的问题。

眼镜:

  • 集群区域:eu-west2
  • 集群主节点/节点版本:常规频道 1.18.12-gke.1210(2 月 14 日更新)
  • 使用 Ingress 和 NEG 进行负载平衡(无会话关联)
  • 云 CDN 缓存
  • Pod 自动缩放(0 - 40,在 CPU 80% 和内存 80% 上自动缩放)
  • 节点自动缩放(每个区域最少 1 个,每个区域最多 10 个)
  • 节点:n1-standard-4
0 投票
0 回答
114 浏览

google-cloud-platform - GCP 负载均衡器 URL 映射将所有请求路由到默认后端服务,配置根据文档显示正确

在我看来,无论我如何/如何配置我的 url 映射,默认的微服务都将是为请求提供服务的微服务。

我有 2 个容器,它们是基于 node + nestjs 的应用程序。

  1. 认证
  2. 上市

公共中的所有路由都没有前缀,我正在公共服务上测试 /featured 端点,并且我还将其设置为默认服务。

auth 中的所有路由都以“auth”路径前缀开头,我正在测试 /auth/test。

这两个端点都是独立工作的,或者如果我将每个服务都设置为默认服务。

但是,除了默认服务之外,我无法将请求正确映射到任何后端服务。

我已经使用 UI 在负载均衡器上配置了 url 映射,如下所示:

在此处输入图像描述