人们如何在自己的域中使用 Google App-Engine 应用程序?

Posted

技术标签:

【中文标题】人们如何在自己的域中使用 Google App-Engine 应用程序?【英文标题】:How are people using Google App-Engine apps with their own domains? 【发布时间】:2008-10-08 19:49:04 【问题描述】:

这几天我一直在玩弄 Google App Engine,我有一个小爱好应用程序,我想编写和部署。

但是我想设置它,以便用户直接通过 appspot.com 访问应用程序。

通过 Google Apps 托管它然后将其指向我自己的域是唯一的方法吗?我看了一点,实施起来似乎很痛苦,但也许我只是遗漏了一些东西。

我的另一个想法是将应用引擎部分编写为更通用的网络服务。

然后我可以将面向用户的部分托管在任何地方,以任何语言编写,并让它查询appspot.com url。

有人对 Web 服务方法有好运吗?

【问题讨论】:

您能否说明您不想使用 Google Apps 的原因?它不需要任何费用,正如其他人指出的那样,您不必使用任何服务。如果您已经有一个 google apps 域,您只需将其添加为别名并将其映射到 App Engine 应用程序。 这似乎是一个额外的复杂层,最好避免(如果可能的话)。也许我只是对免费服务提供的选择挑剔。 我想出了一个我喜欢的方案并写了一些关于它的博客文章。如果有人感兴趣,我会发布帖子的链接。 那会很有帮助 - 你能吗? 当然。我写了 3 篇关于它的非常简单的帖子。 【参考方案1】:

需要 Google Apps 的原因是因为您需要在某个地方 a) 验证您拥有该域(否则,您可能会将其指向应用引擎,然后我可能会通过将其添加到我的帐户来劫持它)和 b) 设置域映射(哪些子域指向您的哪个 appengine 应用程序)。

由于这些东西已经存在于 Apps 中,在 AppEngine 中复制它似乎很愚蠢。

正如已经指出的那样,它不需要任何费用,而且您不需要将任何东西“转移”到 Google。您只需创建一个带有随机名称的 cname 记录来验证您拥有该域,并为您希望指向 App Engine 的子域创建一个 cname。这只需要几分钟,一旦完成,它就会永远完成。

注意:如果您在其他地方托管您的网站并使用网络服务,您需要扩展网站/前端。如果您在应用程序引擎上托管,您可以免费获得:-)

我在我的博客上写了一篇关于将 *.appspot.com 域重定向到您的自定义域以保持您的品牌的文章:

http://blog.dantup.com/2009/12/redirecting-requests-from-appid-appspot-com-to-a-custom-domain

【讨论】:

+1 用于解释为什么实际上需要使用 Google Apps,尽管问题已经有几个月没有出现了。【参考方案2】:

为此,我认为您需要使用 Google Apps 并为 Google Apps 设置自定义域。然后,您 deploy your app 进入您的 Google Apps 域。

【讨论】:

嗯...我很想不必使用 Google Apps。看看是否有人用其他方法成功过会很有趣。 根据上面的“部署您的应用”链接,它似乎不是可选的。 您不必使用 Google Apps,对吧?注册并不要使用它的任何服务。 我仍然没有看到反对意见。它是免费的,您可以根据需要仅将其用于将 App Engine 应用映射到域。 @NickJohnson:我的反对意见是这只是一个非常糟糕的用户体验。【参考方案3】:

这是谷歌关于如何做到这一点的官方说明:

http://code.google.com/appengine/docs/domain.html

我已经在几个网站上使用了这个过程,只要你可以控制你的域的 DNS 记录(你应该),它就很容易和无痛。

【讨论】:

【参考方案4】:

好的,我们现在是 2017 年底,App Engine 和自定义域的情况有很大不同。现在很容易!

转到您应用的应用引擎仪表板并选择“设置”,然后转到“自定义域”选项卡。从那里选择Add custom domain

棘手的部分是 Google 需要验证您是否控制该域,因此他们要求您将 TXT 记录放入您的域的 DNS 中。一旦你这样做并谷歌它,你就成为域的所有者“验证”。

之后,Google 会为您提供一堆 A 和 AAAA(用于 IP6)记录以放入您的 DNS。一旦你这样做了,你应该很高兴。

【讨论】:

【参考方案5】:

使用request.getRequestURI() 方法可以轻松完成。如果 URL 不包含您的域,只需使用

将其重定向到所需的 URL
resp.sendRedirect("<your domain>")

否则使用

加载错误页面
request.getRequestDispatcher("<error-page>").forward(request, response);

【讨论】:

以上是关于人们如何在自己的域中使用 Google App-Engine 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

从自己的域中获取 api 时出现 CORS 错误

从其自己的域中获取api时出现CORS错误

如何使用 ODBC 将 Excel 连接到我的域中的在线 Mysql 数据库?

如何解决 [从未设置 cookie 的域中提供以下静态资源]

如何在Python中的函数指定的域中进行三维绘制?

C# WPF 在不同的域中运行应用程序副本(用于单独的 cookie)