22

按照有关 DNS 记录的说明,我使用 App Engine设置了一个自定义域:

https://cloud.google.com/appengine/docs/standard/java/mapping-custom-domains

它适用于使用 URL http://MY_CUSTOM_DOMAIN的默认服务, 但我无法使用 URL http://SERVICE_ID.MY_CUSTOM_DOMAIN 访问其他服务。我是否需要映射一组不同的 DNS 记录?

4

2 回答 2

22

这是一步一步:

  1. 确保您是此处父域的所有者: https: //www.google.com/webmasters/verification/home(例如,subdomain.example.com您需要拥有example.com)如果不是,请朋友将您添加为所有者。
  2. 创建指向:(在 Cloud DNS 或任何地方) 的CNAME记录。注意:这会导致停机,但 App Engine 需要创建 SSL 证书,因此停机是不可避免的......ghs.googlehosted.com
  3. 将自定义域添加到 App Engine
    1. App Engine -> Settings -> Custom Domains
    2. 点击Add a custom domain
    3. 选择已验证的父域,然后单击Continue
    4. 输入子域(例如subdomain.example.com)并单击Save mappings
    5. 单击Done(您已经完成了最后一步)
  4. 更新 App Engine 调度规则
    1. 运行gcloud app describe --project <GOOGLE_CLOUD_PROJECT_ID>并查看当前部分dispatchRules
    2. 使用您的新规则以及上面已经存在的规则创建dispatch.yaml或归档(注意文件格式与命令输出不同)dispatch.yml
    dispatch:
      - url: <DOMAIN>/* # e.g. subdomain.example.com/*
        service: <SERVICE-NAME>
    
    1. 使用以下方式部署它:gcloud app deploy dispatch.yaml --project <GOOGLE_CLOUD_PROJECT_ID>
于 2019-06-16T14:09:52.253 回答
17

在此处的 GCP 文档中查看如何使用子域以及通配符映射的工作原理(实际上,这些是您关注和链接的网站上的后续步骤)。确保您的 DNS 提供商允许在CNAME主机条目中使用通配符,否则将无法进行此类映射。

这篇博文展示了一个使用 App Engine 将子域与服务匹配的真实示例。

于 2018-03-25T21:56:33.980 回答