App Engine custom domain with service

时间:2018-03-25 21:08:00

标签: google-app-engine custom-domain

I set up a custom domain with App Engine after following the instructions on DNS records:

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

It's working for the default service using URL http://MY_CUSTOM_DOMAIN but I'm unable to access other services with URLs http://SERVICE_ID.MY_CUSTOM_DOMAIN. Do I need to map a different set of DNS records?

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

这是一个循序渐进的步骤:

  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 PROJECT>,然后查看dispatchRules的当前部分
    2. 使用新规则以及上面已经存在的规则创建dispatch.yml文件(请注意,文件格式与命令输出不同)
    dispatch:
      - url: <DOMAIN>/* # e.g. subdomain.example.com/*
        module: <SERVICE-NAME>
    
    1. 使用gcloud app deploy dispatch.yml --project <GOOGLE PROJECT>
    2. 进行部署