1

我有几家公司使用的 Express 应用程序。每个公司都有自己的子域来调用app api,例如company1.mydomain.comcompany2.mydomain.com. 在 Express 中,我们读取子域的值以确定我们必须为该公司执行的自定义操作。

我们正在使用带有 GCP 负载均衡器的 Cloud Run 将此应用程序移至 GCP,并在后者上设置所有子域。我们现在正在尝试读取子域,但它包含 Cloud Run URL ( xxxxx.a.run.app) 的子域值。我们试图弄清楚如何获取用户请求的子域(在负载均衡器中配置的那个),但该值似乎没有转发到 Cloud RUN。

是否有任何我们缺少的设置或有助于我们从 Cloud Run 读取子域值的设置?

PD:我们尝试使用负载均衡器的自定义标头,但没有与子域值相关的选项

PD2:我们还尝试检查其他标头(包括X-SomethingxxGCP 标头),但一无所获

4

1 回答 1

1

我找到了解决方案。它基于我最近写的一篇文章。

解决方案是:

  • 创建 HTTPS 负载均衡器
  • 定义一个调用 run.app 的互联网 NEG
  • 在后端,使用此 NEG 并添加自定义标头主机,以及您的 Cloud Run 服务的完全限定 URL 的值xxxxx.a.run.app(如我的文章中所述)
  • x-forwarded-host添加另一个带有值的自定义标题(例如,您想要的标题){tls_sni_hostname}
于 2021-02-05T21:52:15.870 回答