是否可以在不添加自定义域的情况下将 CNAME 转发到 Google App Engine

Is it possible to forward CNAME to Google App Engine without adding custom domain

我在将 www CNAME 转发到 Google App Engine 应用程序时遇到了这个问题。它不起作用,也许我遗漏了一些东西。

是否可以在没有 adding custom domain 的情况下将 CNAME 转发到 Google App Engine?

您链接的文档实际上包含了您问题的答案:您必须使用通配符向您的应用添加自定义域。

这就是您必须将每个域添加到您的自定义域的原因。

当您创建一个 cname 时,它​​将始终指向 ghs.googlehosted.com。我的猜测是该域后面的服务器是一个巨大的负载平衡器,但这在这里并不重要。重要的是,在发出 HTTP 请求之前,DNS 名称已解析为 IP 地址。所有 Appengine 应用的 IP 地址范围都相同,因此服务器不知道此特定请求是针对您的应用的。但是,使用该 IP 地址会打开到服务器的 TCP 连接。现在你发送这样的请求:

GET / HTTP/1.1
HOST: www.yourcustomdomain.com

服务器查看 HOST 部分,必须决定应将此请求转发到哪个应用程序。但如果您没有将您的域添加到项目的自定义域中,它就无法知道。根本没有关于将请求路由到哪里的信息。所以简单的答案是:

  • 是的,您必须将所有自定义域添加到您的项目中,但您可以使用通配符
  • 不,如果没有这一步,它就无法工作,因为 Google 基础架构包含大量应用程序,而您的应用程序没有可以用来识别它的专用 IP 地址