【问题标题】:Custom domain mapping to Google App Engine module or version自定义域映射到 Google App Engine 模块或版本
【发布时间】:2014-03-13 19:15:09
【问题描述】:

假设我有一个 Google App Engine 应用程序,它有几个模块,这些模块有多个版本。我可以将自定义域名映射到应用程序特定模块的特定版本吗?

例如:

http://www.example.com 应该映射到http://module1-dot-app1.appspot.com

【问题讨论】:

  • 已经阅读了那篇文章,但它没有回答我的问题
  • 通配符域映射至少可以部分解决问题,因为它允许映射应用程序服务的任何子域。所以这将支持 module1.example.com 工作 - 只要应用程序中存在“module1”。但是,我还没有找到关于如何将不同的子域名映射到特定模块(如 www -> module1.example.com、api -> module2.example.com)的解决方案,就像启用通配符映射一样,任何非- 现有的子域名(在您的 apppot 上下文中)将由 DEFAULT 模块提供服务。

标签: google-app-engine dns


【解决方案1】:

1.将模块映射到自定义域

假设您是域 example.com 的管理员,并且您希望将子域 www.example.com 映射到您的模块 webmodule应用程序 myapp.appspot.com

www.example.com -> webmodule.myapp.appspot.com

您可以访问 admin.google.com 并在 App Engine Apps 部分配置您的应用程序,以便将其映射到网址 www.example.com。当然,请按照配置域的说明进行操作(您应该在 DNS 配置中添加一个 CNAME 条目,使用 ALIAS www 和 HOST ghs.googlehosted.com)。

完成此操作后,网址 www.example.com 将链接到您的应用程序默认模块。要重定向到 webmodule,您需要使用 dispatch 文件配置应用程序内部路由,如下所述:

https://developers.google.com/appengine/docs/python/modules/routing

在您的情况下,您需要的是这样的(这来自 Python 应用程序的 dispatch.yaml 文件):

dispatch:

    - url: "www.example.com/*"
      module: webmodule

2.将版本映射到自定义域

关于版本,您似乎无法将 url 映射到特定的模块版本。您可能会做的是将包含版本的 url 映射到特定模块,但这可能有点令人困惑。

【讨论】:

    【解决方案2】:

    正如 thetonrifles 已经指出的那样,您必须使用默认模块中的 dispatch.yaml 文件。

    但是,我在使用安全域/子域时也遇到了一些问题。如果您已经为自定义域上传了 SSL 证书,并且事后添加了自定义子域,则需要返回 SSL 证书部分并启用您添加的那些子域,否则它们将一直显示为空白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多