我想知道你们中是否有人知道如何实现 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,请按照以下步骤操作:
- 转到 Google Cloud 控制台中的负载均衡器列表。
- 对于 HTTP(S)(经典)类型的负载均衡器,请单击负载均衡器的名称链接。
- 单击“编辑”。
- 在主机和路径规则中,选择高级主机和路径规则(URL 重定向、URL 重写)。
- 单击添加主机和路径规则。
- 在主机字段中,输入 *。
- 单击“编辑”。
- 对于操作,选择将客户端重定向到不同的主机/路径。
- 对于主机重定向,请输入要重定向到的主机名,或省略以保留请求的主机。
- 对于路径重定向,选择完整路径重定向。
- 对于路径值,输入要重定向到的路径,或者省略以保留请求的路径。
- 对于条带查询,单击启用。
- 单击保存,完成主机和路径规则的配置。
- 单击“完成”以完成 URL 映射的编辑。
- 单击“更新”以完成负载均衡器的编辑。
参考此文档了解更多信息。