【问题标题】:AppEngine subdomains to modules without wildcard mappingAppEngine 子域到没有通配符映射的模块
【发布时间】:2014-11-02 12:27:07
【问题描述】:

我希望将 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 是否可以进行这种设置?

【问题讨论】:

  • 你解决了这个问题吗?

标签: google-app-engine


【解决方案1】:

我设法让此类设置与 Google Apps 一起使用。

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

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

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

警告:在上述步骤中输入信息时要小心,因为到目前为止我无法删除/更正 URL,我遇到了这里描述的问题(昨天致电支持并没有帮助就我而言):App Engine (On Google Apps) Custom Domain can't remove

在管理控制台的 Security -> SSL for Custom Domains 菜单中,我在 5 个 SNI 插槽之一中拥有裸域的通配符 SSL 证书。我将下拉框中(以及下面的未分配的 URL 列表中)现在可见的 2 个 URL 添加到 SNI-only 服务模式。

我的调度文件有点问题 - PyCharm 没有正确上传,因为我切换到模块,必须手动上传(使用appcfg.py --oauth2 update_dispatch .)并且只有在我将我的应用名称包含在它 变得有效(在旧的 GAE Apps console https://appengine.google.com/ 中作为 Main -> Dispatch 菜单可见,但在开发者控制台):

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

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

注意:从我将 URL 添加到我的 SSL 证书服务列表的那一刻到页面开始工作也需要几分钟 - 在此期间我收到了安全警告(我有 @987654334 @ 对我的模块的 .yaml 文件中的所有条目强制执行)。

我想就是这样。

【讨论】:

  • 谢谢,感谢您的回答,我终于完成了这项工作!我一直在疯狂地尝试使用调度元素“服务”来让它工作,根据文档dispatch.yaml reference 是这样做的方法:“service -- 指定将处理的服务的名称与 url 模式匹配的请求。请注意,服务以前称为模块。"。通过用“模块”替换“服务”,我的 dispatch.yaml 工作。
【解决方案2】:

如果您使用 Google Apps 来配置您的域,这似乎是不可能的:

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

来自https://support.google.com/a/answer/182081的“Google App Engine”

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

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

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

【讨论】:

    猜你喜欢
    • 2017-05-10
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2012-10-31
    相关资源
    最近更新 更多