如何使用未经验证的自定义域与Google App Engine

时间:2016-03-07 10:01:46

标签: google-app-engine dns google-cloud-platform

我需要客户能够将自己的自定义域指向我的GAE应用。

e.g。 customersdomain.com - CNAME - > myapp.com(反过来指向myapp.appspot.com)

我知道我可以将域名链接到我的Google帐户,然后使用该域名来投放应用引擎,但此过程无法扩展,并要求我可以直接访问客户的域名注册/ DNS。唯一的另一种选择是强迫客户注册Google Apps(为什么!)。

几乎所有其他PaaS都使这个过程变得无痛:

  • 在Heroku中,我只是将域名添加到白名单和客户 添加CNAME记录。
  • 在AWS中,指向该实例的单个CNAME记录可以解决问题。

有没有人知道这方面的解决方法?或者我只是需要手动将数百个域链接到我的帐户?

1 个答案:

答案 0 :(得分:1)

你要求一些不可能的东西。 App Engine不使用固定IP,因此无法根据IP决定应该服务的应用程序。选择是由包含URL的请求做出的,如下所示:

GET http://custom.example.com/resource.html

服务器提取域部分“custom.example.com”,并在此域中决定您的请求所指的应用程序。为了做到这一点,它必须有一个映射表,其中的域映射到什么应用程序。您必须通过在开发人员控制台中输入域来填写此映射表。

当您的域中有cname记录时,浏览器会首先为您的请求解析一个IP。所有应用程序引擎应用程序之间共享相同的IP地址,因此单独使用IP地址无法确定您的应用程序。所以不,你不能只是添加CNAME并期望appengine只知道该怎么做,你必须明确告诉appengine。

说到明确的。您可以将通配符用于自定义域。也许这可以帮助。否则,我看到客户创建自己的前锋的唯一选择是使用框架。许多域提供商提供的服务将托管一个非常简单的html页面,该页面将在整个宽度/高度框架中显示目标网站。我总觉得框架解决方案是某种欺骗行为,但它可能是您案例中的最佳选择。