如何允许外部域映射到 App Engine 应用程序

问题描述 投票:0回答:1

我正在尝试将自定义域映射到我的应用程序引擎应用程序。基本上,我们正在尝试做的是对我们当前的服务进行白标,并允许外部域(例如 www.myexternaldomain.com)指向 mydomain.com 并提供与 mydomain.com 相同的内容。我最近了解到应用程序引擎有 20 个域限制,但由于我实际上并未为外部域创建子域,并且我将始终提供来自 mydomain.com 的内容,这会是一个问题吗?如果不是我该怎么做?

所以为了让这一点更清楚一点,我想做这样的事情:

external-domain-1.com(服务)-> mydomain.com

external-domain-2.com(服务)-> mydomain.com

我们应该能够找出调用我们网站的域名并更改徽标、图像等内容。我对吗?如果没有,考虑到我们已经在 App Engine 上进行了此设置,是否有人知道我们如何在 GCP 环境中仍然可以做到这一点,而无需进行重大转变?我还想我们也许可以使用通配符子域来处理外部域,例如

external-domain-1.com(服务)-> *.mydomain.com

google-cloud-platform google-app-engine
1个回答
0
投票

提供自定义域有 3 个主要部分:

  1. 使用 DNS 将域指向您的应用程序。
  2. 为每个自定义域配置和终止 SSL/TLS。
  3. 在应用程序中区分和处理自定义域 http 请求,一旦它们到达。

第一很简单,但有一个警告:

  • Apex 域(无 www 或其他子域)需要使用 DNS A 记录指向。
  • DNS A 记录必须指向 IP 地址。
  • 子域可以使用另一个域/子域的 CNAME 或 A 记录来指向。

第二个可能是最复杂的一个,因为大规模配置、更新和管理许多证书可能很棘手。我不知道 App Engine 是否有内置的东西来处理这个问题(也许有知识的人可以插话),但它也可以通过反向代理来实现,它将与几乎任何堆栈兼容。

如果您想自己构建一个带有反向代理的解决方案,我推荐 Caddy 服务器。如果您选择该路线,请注意 acme 协议的工作原理以及 CA 规则和速率限制。否则,您可能会在某个时候遇到意想不到的问题。如果您更喜欢使用为您完成所有操作的托管服务,我建议您使用 approxed.app 或 CloudFlare 的 SSL for SAAS(不过,您可能需要企业版才能使用 CF 的某些功能)。

对于第三点,根据请求的反向代理方式,您可以使用主机标头、x-forwarded-host 标头或等效的内容来区分自定义域请求和主域请求。您可以将其与租户/用户/实体绑定以加载正确的数据/内容/响应。

具体如何实现在很大程度上取决于您的应用程序、框架等,但它通常可以很简单,只需在一个地方(例如路由器)使用某些东西捕获主域请求,然后将所有其他域作为另一个地方的自定义域进行处理.

© www.soinside.com 2019 - 2024. All rights reserved.