google-cloud-platform - Google Cloud Load Balancer - 子域重定向到存储桶中的特定文件夹
问题描述
目前我们有以下要求:
每个用户都可以在 Google 存储桶下拥有自己的子域和文件夹,其中包含应通过该子域提供的内容,例如:
[domain] user1.example.com -> [bucket] example.com/user1/index.html
[domain] user2.example.com -> [bucket] example.com/user2/index.html
所以桶有以下结构:
- [Bucket] example.com
- [Folder] user1
- [File] Index.html
- [Folder] user2
- [File] Index.html
- etc..
子域将被动态添加,我不能只设置地图规则(可以通过 API 更新它,但我猜它们对地图规则有限制)。
这些 HTML 内容也应通过 HTTPS 提供。
我在 GCP 上设置了域、存储桶、负载均衡器,但目前在 LoadBalancer 上被 URL/路径重写卡住了。
所以问题 - 是否可以调用“user1.example.com”并通过负载均衡器从存储桶“/example.com/user1”文件夹中提供 HTML 连接?
是否可以使其与上述架构一起使用,或者它需要为每个用户提供单独的存储桶,或者它只能与将流量重定向到特定文件夹/域的单独反向代理一起使用?
谢谢。
解决方案
正如您所确定的,没有通用方法可以将主机名映射到路径的一部分。您可以hostRules
为每个子域设置一个单独的条目,但限制为 50 个条目。您可以为您拥有的每 50 个子域创建全新的转发规则和目标 http 代理。这将扩大规模,但仍然很复杂。
或者,您可以指向运行 Envoy 或 HAProxy 等代理的实例的后端服务。这些具有强大的重写功能,可以做到这一点。
推荐阅读
- azure - Azure Functions 并发:maxConcurrentRequests - 是否真正并行以同时执行同时发生的所有请求
- linux - Xenomai 3.1 水星序言在线程运行官方演示中失败
- android - 如何使高阶函数同步kotlin?
- arm - aurel32 qemu 图像 arm vs mips
- docker - 如何修复 docker storage-driver=overlay2 问题
- javascript - 如何在 D3.js 版本 5 中为 xScale 的不同列显示 X 轴和组中的不同列元素
- python - 示意图。来自先前测试响应的路径参数值
- pdf - 使用 OpenPDF 在 PDF 的每一页上的页眉和页脚块
- azure - 在 terraform 中为 Azure lb 缩放设置多个自定义电子邮件 ID 失败
- javascript - JavaScript:这个表达式有什么用?也许是阿贾克斯?