GCP 负载均衡器中的反向代理(或 URL 重写)

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

我在 GCP 中有一个负载均衡器 (LB),当前正在将一些匹配路径重定向到外部(非 GCP)服务(301 重定向)。我正在尝试添加额外的 prefixMatch 规则集,这些规则将充当单独的第 3 方服务(WebFlow,如果重要的话)的反向代理。

我有一个后端服务(外部),它使用指向第 3 方主机 [mysite.webflow.io] 的完全限定域的 NEG。我已设置规则以将该服务用于 2 个路径(/blog/、/pages/)。

使用以下 YAML 更新 LB 路由规则后,优先级 1 规则仍然有效,但优先级 2 规则(代理)指向我的默认服务中找到的 404 页面。

主机:mysite.com,www.mysite.com

defaultService: projects/my-gcp-project-1/global/backendServices/my-default-service
name: redirect-rules
routeRules:
- urlRedirect:
    hostRedirect: subdomain.mysite.com
    redirectResponseCode: MOVED_PERMANENTLY_DEFAULT
  matchRules:
  - prefixMatch: /rad-page-1
  - prefixMatch: /rad-page-2
  priority: 1
- matchRules:
  - prefixMatch: /pages/*
  - prefixMatch: /blog/*
  priority: 2
  routeAction:
    weightedBackendServices:
    - backendService: projects/my-gcp-project-1/global/backendServices/proxy-backend-service
      weight: 100
    urlRewrite:
      hostRewrite: www.mysite.com

我想知道我是否缺少像preserveHost: true这样的东西?

我刚开始在 GCP 中设置此类规则。预先感谢您的帮助!

google-cloud-platform url-rewriting reverse-proxy
1个回答
0
投票

当您想要使用 Google Cloud Load Balancer 反向代理或重写 URL,但仅修改主机部分时,此设置 preserveHost: true 至关重要;原来的路径保持不变。

URL 重写将 URL 与资源分开。您可以将人类友好的 URL(更易于用户记住和使用)转换为搜索引擎友好的 URL(更易于搜索引擎查找),或转换为内部特定于实现的 URL。

URL 重写功能执行以下操作:

1.读取请求中传入的URL。

2.替换主机、路径或同时替换主机和路径,在将流量引导到后端服务或后端存储桶之前转换 URL。

请参阅关于 为经典应用程序负载均衡器设置 URL 重写的官方 GCP 文档,另请参阅关于URL 映射的官方 GCP 文档以匹配路径。

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