You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

自定义子域名映射App Engine服务求助:DNS解析失败

解决App Engine子域名DNS解析失败问题

看起来你的核心问题是api.sub.domain.com出现了DNS解析错误,这说明这个子域名既没有正确的DNS记录,也可能没在App Engine中完成自定义域名绑定。结合你的情况,我整理了以下排查和解决步骤:

1. 先在App Engine中添加并验证api.sub.domain.com自定义域名

你已经成功注册了sub.domain.com,但每个子域名都需要单独在App Engine中完成注册和验证,不能只依赖dispatch规则:

  • 登录GCP控制台,进入App Engine -> 设置 -> 自定义域名
  • 点击"添加自定义域名",输入api.sub.domain.com
  • 按照提示完成域名所有权验证(通常是添加TXT记录到你的域名DNS配置中)
  • 验证通过后,GCP会给出对应的DNS配置指引

2. 配置正确的DNS记录

验证完成后,需要在你的域名服务商处为api.sub.domain.com添加CNAME记录:

  • 记录类型:CNAME
  • 主机记录:api.sub(或根据域名服务商要求填写api.sub.domain.com
  • 目标值:ghs.googlehosted.com(和sub.domain.com的CNAME目标一致)

如果你想让所有sub.domain.com的子域名都能解析到App Engine,可以设置通配符CNAME记录:

  • 主机记录:*.sub
  • 目标值:ghs.googlehosted.com
    但这种方式需要你同时在App Engine中注册通配符域名*.sub.domain.com,同样需要完成所有权验证。

3. 确保dispatch规则已正确部署

你的dispatch.yaml内容看起来没问题,但要注意:

  • 必须通过命令部署这个配置文件才能生效,运行:
    gcloud app deploy dispatch.yaml
    
  • 规则顺序是从上到下匹配的,你的现有顺序是正确的,api.sub.domain.com/*会优先匹配到api服务。

4. 清除DNS缓存

DNS记录更新后可能有缓存延迟,你可以:

  • 刷新本地DNS缓存:
    • Windows:ipconfig /flushdns
    • Mac:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • 用Chrome无痕模式测试,避免浏览器缓存影响结果

5. 额外检查点

  • 确认api.sub.domain.com没有同时配置A/AAAA记录和CNAME记录,这会导致DNS解析冲突
  • 在App Engine自定义域名页面,确认api.sub.domain.com的状态是"已启用"

内容的提问来源于stack exchange,提问作者Valentin Coudert

火山引擎 最新活动