【问题标题】:Map custom sub-domain to specific version on App Engine将自定义子域映射到 App Engine 上的特定版本
【发布时间】:2019-03-06 16:39:51
【问题描述】:

此页面 (https://cloud.google.com/appengine/docs/standard/nodejs/mapping-custom-domains) 声明:

使用子域

如果您为自定义域设置通配符子域映射,那么您的应用程序会为任何匹配的子域提供请求。

  • 如果用户浏览的域与应用程序版本名称或服务名称匹配,则应用程序会提供该版本。
  • 如果用户浏览与服务名称匹配的域,则应用程序会提供该服务。

此外,此页面 (https://cloud.google.com/appengine/docs/standard/java/how-requests-are-routed) 指出:

default 服务中特定版本的可用实例发送请求:

https://[VERSION_ID]-dot-[MY_PROJECT_ID].appspot.com

http://[VERSION_ID].[MY_CUSTOM_DOMAIN]


我的 App Engine 项目有以下服务:

此服务的以下版本:

"1" 是默认版本。 "test1" 是测试版。

然而,当我在浏览器中输入https://test1.mycustomdomain.com 时,它提供的是默认版本,而不是"test1" 版本。

如果我在浏览器中输入https://test99.mycustomdomain.com,我会看到一个错误页面,因为此版本不存在(如预期的那样)。

网址https://test1-dot-MY_PROJECT_ID.appspot.com/ 按预期工作(即提供"test1" 版本)。

这些是我配置的域:

如何让 App Engine 将请求路由到正确的版本?

【问题讨论】:

    标签: google-app-engine custom-domain


    【解决方案1】:

    任何直接映射到您的应用的域都将提供默认服务。如果test1.mycustomdomain.com 被映射为自定义域,它将始终为1 提供服务(默认)。

    要使用自定义域提供命名的 GAE 版本,您需要使用通配符 (*.mycustomdomain.com) 映射域,并删除与您的版本冲突的其他映射子域。工作映射域的一个示例是:

    • mycustomdomain.com
    • www.mycustomdomain.com
    • *.mycustomdomain.com

    使用该设置,test1.mycustomdomain.com 应该提供正确的版本,test1


    编辑

    关于通配符映射和 HTTPS

    GCP documentation about wildcard mapping 声明:

    注意:托管 SSL 证书不支持通配符映射。

    这可能会让人相信通配符映射不支持 HTTPS。该文档指的是managed certificates that GAE provides。如果您使用自己的 SSL 证书,App Engine 会执行 support SSL certificates for wildcards

    某些 App Engine 功能使用special subdomains。例如,应用程序可以使用子域来处理应用程序服务,或处理应用程序的不同版本。要将这些与 SSL 一起使用,设置 SAN 或通配符证书是有意义的。通配符证书仅支持一级子域。

    【讨论】:

    • 我必须删除 所有 映射的子域,还是只删除“冲突”的子域? IE。我是否必须删除“api”、“test1”和“www”映射才能让“test1”工作?此外,通配符映射似乎不允许 HTTPS,这是我需要的。
    • @PaulGrime 您只需要删除冲突的部分,我将编辑我的答案以澄清那部分。关于 HTTPS 部分,我猜您之所以这么说是因为文档说明了 "Wildcard mappings are not supported for managed SSL certificates."。此“托管证书”引用了 Google 为您在 GAE 中的自定义域提供的证书。您仍然可以使用自己的来保护通配符域。会将此信息添加到编辑中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2021-10-27
    • 1970-01-01
    • 2020-11-21
    相关资源
    最近更新 更多