标签: gcp-load-balancer

谷歌正在阻止流量,因为它检测到自动查询

当我尝试访问部署在 Google Cloud 上的网站时,我收到以下错误页面:

我们很抱歉...

...但是您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们现在无法处理您的请求。

以下是我的设置的详细信息:

  • NextJS Web 应用程序部署到 Cloud Run(流量仅限于内部 + 负载平衡)
  • Strapi 内容管理系统部署到 Cloud Run(流量仅限于内部 + 负载平衡)
  • 我在每个 Cloud Run 服务前面都有一个负载均衡器,并且正在使用 Google 保留的 IP 和托管 SSL 证书
  • 身份感知代理 (IAM) 位于两个负载均衡器之前
  • 每次页面访问都会对内容管理系统进行 API 调用以检索内容(这是否会导致网络认为正在发生“自动查询”?)

故障排除:

  • 它似乎与访问该网站的实际用户无关。所有用户、不同设备、不同 IP 地址都会出现此错误消息。之前一直运行没有问题,这是我第一次遇到这个问题。
  • 没有流量到达 Cloud Run 环境。如果我将它们的入口切换为“允许全部”,我就可以直接点击 Cloud Run URL 并且它可以工作
  • 删除并重新创建负载均衡器并不能解决问题

基于此,负载均衡器附近似乎存在一些网络配置/安全性。

有什么解决方案或建议可以继续调试吗?

google-cloud-platform google-cloud-networking google-cloud-run gcp-load-balancer

15
推荐指数
1
解决办法
1492
查看次数

尝试创建负载均衡器时,terraform 为 GCP 返回“invalid_grant”,并且我无法以所有者身份查看或编辑 SA 权限

我有一个全新的 GCP 帐户,我是该帐户的唯一所有者,这是一个个人/干净的全新项目。

\n

我专门使用 terraform 管理基础设施,并尝试创建一个 HTTPS 负载均衡器来将请求路由到固定 ip,然后我想将其转发到我有 web 应用程序的存储桶,我过去通过以下方式设置了这种类型的基础设施UI 但不是通过 terraform。

\n

当尝试创建这个基础设施时:

\n
resource "google_compute_global_address" "main" {\n  name = "main"\n}\n\nresource "google_compute_forwarding_rule" "lb" {\n  name                  = "lb"\n  provider              = google-beta\n  region                = "europe-west2"\n  project               = "owlee-software"\n  ip_protocol           = "TCP"\n  load_balancing_scheme = "EXTERNAL_MANAGED"\n  port_range            = "443"\n  target                = google_compute_global_address.main.address\n  network_tier          = "PREMIUM"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这会抛出

\n
\xe2\x94\x82 Response: {\n\xe2\x94\x82   "error": "invalid_grant",\n\xe2\x94\x82   "error_description": "Account has been deleted"\n\xe2\x94\x82 }\n
Run Code Online (Sandbox Code Playgroud)\n

对于全新的服务帐户 - 我已删除该帐户并创建了另一个帐户 - 使用另一个文件,如果我删除此资源,则所有内容都会通过 GCP 帐户中的服务帐户进行实例化。这也是我在该项目中拥有的唯一“谷歌测试版”提供商。

\n

我不确定这是因为资源配置错误还是服务帐户发生了一些问题。

\n

当我尝试检查我刚刚创建并在项目上创建编辑器的服务帐户时,我不能,它显示为灰色,并显示以下文本: …

google-cloud-platform terraform google-iam terraform-provider-gcp gcp-load-balancer

12
推荐指数
1
解决办法
2238
查看次数

HTTPS 负载均衡器后端 URL 映射无法加载渲染页面

我的应用程序使用 HTTPS 使用 docker-compose 运行所有服务。

应用程序运行没有任何问题,我们正在尝试为所有服务设置 HTTPS 负载均衡器。

我们使用此文档创建了一个负载均衡器。

我们添加了三个后端服务,并为所有后端服务设置了主机和路径规则。

HTTPS_负载均衡器

但是当尝试查看以下 HTTPS URL 时

https://Loadbalancer-ip:/strapi

https://Loadbalancer-ip:/auth

https://Loadbalancer-ip:/images/1。

我正在获取 404 页面。但它单独适用于所有不匹配(默认)。

google-cloud-platform gcp-load-balancer

7
推荐指数
1
解决办法
149
查看次数

谷歌云运行需要负载均衡吗?

我目前正在部署一个前端,该前端将根据谷歌云平台上的使用情况动态扩展。一位朋友建议我使用谷歌云运行。我使用简单的快速服务器将我的 Angular 前端构建到 docker 映像,并部署在 google cloud run 上。这(据我所知)意味着当一个 docker 实例达到请求阈值时,另一个将启动并接受额外的请求。这与负载均衡器有何不同?我需要在谷歌云运行扩展之上的负载平衡器吗?

对于我缺乏 DevOps 知识,我提前道歉。

load-balancing google-cloud-platform google-cloud-run gcp-load-balancer

3
推荐指数
1
解决办法
409
查看次数

GCP 负载均衡(非经典)- URL 重写

我有一个非常简单的用例,但我似乎找不到方法来做到这一点。我的应用程序有一个应用程序部分(角度)和一个 API 部分(nodejs)。从 UI 来看,虽然我将 api 称为/api/*,但 api 服务器本身没有/api前缀。因此,我需要重写对/apito的任何请求/

在开发环境中,我的角度应用程序只有一个代理配置来进行重写:

{
  "/api/*": {
    "target": "http://localhost:3000",
    "pathRewrite": {
      "^/api/": ""
    },
    "secure": false,
    "logLevel": "debug"
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,对于生产环境,我需要针对以下场景配置GCP负载均衡器:

传入路径 后端服务 路径重写
/ ui 后端服务 (不适用)
/应用程序 ui后端服务 (不适用)
/api api 后端服务 /

虽然我能够配置简单的路由规则来将主机和路径映射到 ui-backend-service,但重写/api.

我能找到的任何 URL 重写示例都显示了经典负载平衡,它似乎不再适用。

我尝试修改Advanced host and path rules,但它告诉我我可以提供pathRulesrouteRules,而不是两者都提供。我无法创建单独的规则,因为主机(*在我的例子中)不能多次使用。

我不想为此在我的 api 服务器上设置 nginx。还有其他方法吗?

load-balancing node.js google-cloud-platform gcp-load-balancer angular14

3
推荐指数
1
解决办法
779
查看次数

如何使用 Google 部署管理器 (Python + YAML) 部署内部 HTTP(S) LoadBalancer?

我正在为由整体和微服务组成的 Web 应用程序实现 IaC。我想在所有微服务前面放置一个内部 HTTP 负载均衡器,但尚未找到任何示例。我查看了Cloud Foundation Toolkit。这里的内部负载均衡器仅支持 TCP/UDP 内部负载均衡器。谷歌的部署管理器样本根本没有提到它!目前,似乎唯一的选择就是从头开始构建 python 模板。

在我跳入那个兔子洞之前,想检查一下是否有可用的工作示例或示例。

google-cloud-platform google-deployment-manager infrastructure-as-code gcp-load-balancer

2
推荐指数
1
解决办法
352
查看次数

API Gateway 返回 404 的 GCP 负载平衡

我已经在 GCP 中设置了一个 API 网关,现在我正在尝试在网关前面配置 GCP 的负载平衡。为了做到这一点,我所做的是:

  1. 设置一个互联网 NEG,默认端口为 443,域名为网关的 url(由 api 网关提供)
  2. 创建了一个负载均衡器,其中包含与 NEG 关联的后端服务以及使用 HTTPS 协议、静态 IP 地址和托管证书的全局前端
  3. 创建了一条 A 记录并在 Cloudflare 中将其指向负载均衡器的 IP

设置完成后,我尝试从前端 IP 地址访问负载均衡器,但收到 404

我是否错过了服务配置中的任何步骤?

cloudflare google-cloud-platform gcp-load-balancer google-cloud-api-gateway

1
推荐指数
1
解决办法
2147
查看次数

Gcloud LoadBalancer:无需停机即可更改 Google 托管证书

我打算使用 Gcloud 托管证书。它的工作方式是,我已经有一个由 Let's Encrypt 管理的自定义证书,该证书已分配给我的 LoadBalancer。现在我想切换到 Google 托管证书。为了实现这一点,我必须将域指向 LoadBalancer 的 IP,然后转到负载平衡组件页面,然后我必须在“证书”选项卡上创建 Google 托管证书,最后编辑 LoadBalancer 以更改其前端配置HTTPS 协议并选择新创建的证书。然后,只有到那时,GCP 才可以提供证书。问题是可能需要几分钟(例如 10 分钟)才能配置证书。在此期间,我的应用程序最终将丢失证书,并且浏览器将阻止它。这对我们来说不是可接受的情况。

因此,简而言之,我需要将 LoadBalancer 的证书替换为另一个尚未验证的证书,这将导致我的应用程序在配置它所需的时间内无法使用。理想的情况是首先配置证书,然后编辑 LoadBalancer 以将其与新证书绑定。

有什么办法可以实现这一点吗?否则,我仍然必须使用 Let's Encrypt 颁发证书,并在每次证书即将过期时手动替换它。

ssl-certificate google-cloud-platform google-cloud-networking google-cloud-load-balancer gcp-load-balancer

1
推荐指数
1
解决办法
592
查看次数