AppEngine子域到没有通配符映射的模块

时间:2014-11-02 12:27:07

标签: google-app-engine

我希望将2个自定义子域映射到AppEngine应用程序的不同模块,即:

a.my-domain.com -> default module
b.my-domain.com -> module-b

我的dispatch.yaml看起来像这样:

dispatch:
  - url: "a.my-domain.com/*"
    module: default

  - url: "b.my-domain.com/*"
    module: module-b

我将这两个子域添加到此应用AppEngine自定义域和CNAME设置正确。

问题是a.my-domain.com和b.my-domain.com都解析为默认模块。

我没有尝试过顶级通配符映射,即* .my-domain.com到这个应用程序,因为我已经将其他子域映射到另一个应用程序。

AppEngine甚至可以设置这个设置吗?

2 个答案:

答案 0 :(得分:3)

我设法使用Google Apps进行此类设置。

我猜测来自调用x.my-domain.com子域名的混淆(我最初遇到了同样的问题) - 它们实际上只是*.my-domain.com域中的主机。

我在管理控制台的域名菜单中,已将*.my-domain.com(主要)裸域由Google Apps处理,重定向到www.my-domain.com

我将App Engine应用ID添加到管理控制台中的 App Engine应用菜单。然后在该菜单中点击我的应用程序条目,我通过添加 a 为每个主机创建了网址 / 新网址 b 在下拉列表中选择了裸域(不是子域!)。现在我在网址列表中看到了:

警告:在上述步骤输入信息时要小心,因为到目前为止我无法删除/更正网址,我完全按照此处描述的问题(并且昨天调用支持到目前为止没有帮助在我的情况下):App Engine (On Google Apps) Custom Domain can't remove

安全 - >中管理控制台中的自定义域的SSL 菜单我在5个SNI插槽之一中拥有裸域的通配符SSL证书。我在下拉框中(以及下面的未分配的网址列表中)添加了2个网址,显示为仅限SNI 服务模式。

我的调度文件有点麻烦 - PyCharm没有正确上传,因为我切换到模块,必须手动上传(使用appcfg.py --oauth2 update_dispatch .)和仅在我加入我的应用程序后其中的名称它变得有效(在旧的GAE Apps console https://appengine.google.com/中显示为主要 - > 调度菜单,不能但是在开发者控制台中找到了一个等价物:

application: myapp
dispatch:
  - url: "a.my-domain.com/*"
    module: default
  - url: "b.my-domain.com/*"
    module: module-b

注意:可能需要一段时间才能传播DNS更改(顺便说一下,我在注册时通过Google获取了我的裸域,因此他们可以直接驱动DNS操作,我我自己没有做任何事情) - 在我的情况下,传播时间在5-15分钟范围内。

注意:从我将网址添加到我的SSL证书服务列表之前,还需要几分钟,直到网页开始工作 - 在此期间我收到安全警告(我{{{ 1}}对我的模块的.yaml文件中的所有条目强制执行。

我认为就是这样。

答案 1 :(得分:1)

如果您使用Google Apps配置域名,则似乎无法实现:

  

使用Google App Engine的应用程序不适用于非主要域的用户[1]。

来自" Google App Engine"在https://support.google.com/a/answer/182081

它也在https://cloud.google.com/appengine/docs/ssl提到:

  

Google Apps不支持" secondary"适用于您的App Engine应用的域名,如此处所述。您仍然可以将辅助域名与您通过Google Apps提供的其他应用程序一起使用,但您的App Engine应用程序只能通过您帐户的主域名或其别名来访问。

您应该可以在没有Google Apps的情况下配置您的域名,但如果您需要SSL支持,这需要使用Google Apps,我认为没有合适的解决方案。