自定义域映射到Google App Engine模块或版本

时间:2014-02-14 12:15:16

标签: google-app-engine dns

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

例如:

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

2 个答案:

答案 0 :(得分:12)

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

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

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

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

完成此操作后,网址 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映射到特定模块,但这可能有点令人困惑。

答案 1 :(得分:1)

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

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