【问题标题】:App Engine custom domain with service具有服务的 App Engine 自定义域
【发布时间】:2018-09-03 23:26:42
【问题描述】:

我按照有关 DNS 记录的说明使用 App Engine set up a custom domain

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

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

【问题讨论】:

    标签: google-app-engine custom-domain


    【解决方案1】:

    这里是一步一步的:

    1. 确保您是此处父域的所有者:https://www.google.com/webmasters/verification/home(例如,对于 subdomain.example.com,您需要拥有 example.com) 如果没有,请让朋友将您添加为所有者。
    2. 创建一个 CNAME 记录,指向:ghs.googlehosted.com(在 Cloud DNS 或任何地方)。 注意:这会导致停机,但 App Engine 需要创建 SSL 证书,因此停机是不可避免的......
    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.yamldispatch.yml 文件(注意文件格式与命令输出不同)
      dispatch:
        - url: <DOMAIN>/* # e.g. subdomain.example.com/*
          service: <SERVICE-NAME>
      
      1. 部署它使用:gcloud app deploy dispatch.yaml --project &lt;GOOGLE_CLOUD_PROJECT_ID&gt;

    【讨论】:

    • @henry-woody dispatch.yamldispatch.yml 工作
    • 是否可以只做子域?哪个是非常常见的用例?
    【解决方案2】:

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

    This blog post 展示了使用 App Engine 将子域与服务匹配的真实示例。

    【讨论】:

    • 关键带走,如果你的服务被命名为“api”并且你为“api.expample.com”创建了一个自定义域,App Engine 会自动匹配它。
    猜你喜欢
    • 2017-12-28
    • 2019-08-29
    • 2014-02-01
    • 1970-01-01
    • 2018-04-20
    • 2020-02-15
    • 2012-06-10
    • 2017-04-08
    • 2011-07-10
    相关资源
    最近更新 更多