从负载均衡器重定向到 URL,没有 CORS 错误

从负载均衡器重定向到 URL,没有 CORS 错误

我想知道你们中是否有人知道如何实现 GCP 负载均衡器重定向到“启用 CORS”的 URL。这是什么意思?嗯,我有以下场景:

  • 一个负载均衡器必须根据 URL 路径重定向到其他负载均衡器 (LB 目录
  • 连接了多个后端的“简单”负载均衡器(LB 乙LB 控制, ETC)

我的流程如下:

  • LB 目录(/pathB)——重定向->LB 乙
  • LB 目录(/pathC)——重定向->LB 控制

如果通过 (如 cURL 或 Postman) 请求,此操作将按预期工作,simple HTTP Request但如果在网站上请求,则会失败。为什么?因为预检OPTIONS请求被重定向,这会带来 CORS 错误Redirect is not allowed for a preflight request,即使OPTIONS跳过请求,简单GET请求也会得到redirected没有 CORS 标头的响应(这将失败)。

这可能吗?如果可以,我该如何实现?我尝试添加 cors 策略LB 目录但 LB 不能routeAction与 一起存在urlRedirect

实际上,我只想在 301 响应中注入 CORS 标头以避免错误。

答案1

要直接添加 URL,请按照以下步骤操作:

  1. 转到 Google Cloud 控制台中的负载均衡器列表。
  2. 对于 HTTP(S)(经典)类型的负载均衡器,请单击负载均衡器的名称链接。
  3. 单击“编辑”。
  4. 在主机和路径规则中,选择高级主机和路径规则(URL 重定向、URL 重写)。
  5. 单击添加主机和路径规则。
  6. 在主机字段中,输入 *。
  7. 单击“编辑”。
  8. 对于操作,选择将客户端重定向到不同的主机/路径。
  9. 对于主机重定向,请输入要重定向到的主机名,或省略以保留请求的主机。
  10. 对于路径重定向,选择完整路径重定向。
  11. 对于路径值,输入要重定向到的路径,或者省略以保留请求的路径。
  12. 对于条带查询,单击启用。
  13. 单击保存,完成主机和路径规则的配置。
  14. 单击“完成”以完成 URL 映射的编辑。
  15. 单击“更新”以完成负载均衡器的编辑。

参考此文档了解更多信息。

相关内容