【发布时间】:2021-05-10 00:13:03
【问题描述】:
我有一个被多家公司使用的 Express 应用。每个公司都有自己的子域调用app api,如company1.mydomain.com、company2.mydomain.com。在 Express 中,我们读取子域的值以确定我们必须为该公司执行的自定义操作。
我们正在使用带有 GCP 负载均衡器的 Cloud Run 将此应用程序移至 GCP,并在后者上设置所有子域。我们现在正在尝试读取子域,但它包含 Cloud Run URL (xxxxx.a.run.app) 的子域值。我们正在尝试弄清楚如何获取用户请求的子域(在负载均衡器中配置的那个),但该值似乎没有转发到 Cloud RUN。
是否有我们遗漏的设置或有助于我们从 Cloud Run 读取子域值的设置?
PD:我们尝试使用负载均衡器的自定义标头,但没有与子域值相关的选项
PD2:我们还尝试检查其他标头(包括 X-Somethingxx GCP 标头),但一无所获
【问题讨论】:
-
您检查了标题吗?你有
x-forwarded-host标头值吗? -
@guillaumeblaquiere 不,我没有。我可以看到的
x-标头是:x-cloud-trace-context、x-forwarded-for、x-forwarded-proto和x-request-id。它们都不包含子域 -
您在负载均衡器上使用 HTTPS 协议吗?
-
@guillaumeblaquiere 是的。我们有一个 HTTPS LB 和 HTTP LB 重定向到 HTTPS。
标签: express google-cloud-platform google-cloud-run gcp-load-balancer