我已经购买了 Google Domains 域名并尝试将我的 Cloud Run 项目映射到它。
为此,我在 Google Domain 帐户的“DNS 设置”页面的自定义资源记录下添加了两条记录:
- @ A 1h xxx.xxx.xx.xx(我从云运行页面中的自定义域映射 -> DNS 记录获取的 ip)
- www CNAME 1h example.com。
根据我在这里读到的内容:https://support.google.com/domains/answer/3251147?authuser=1#zippy=%2Ccname,这应该足以让我的网址“https://example.com”和“https://www.example.com”正常工作,但事实并非如此。只有“https://example.com”有效,而带有“www”的网址会给我一个 Google 404 页面。
知道如何才能使“www”发挥作用吗?
谢谢!
答案1
最终成功让它发挥作用:
- 在 Cloud Run 中创建了两个自定义映射(一个用于 example.com,另一个用于www.example.com)。
- 在 Google Domains 中,我添加了 3 条自定义资源记录:
@ 1小时xxx.xxx.xx.xx
@TXT 1h“verification_key”#我必须添加此记录来验证我的www.example.com领域
* 1小时 xxx.xxx.xx.xx
我认为使其工作的关键是将通配符映射到 DNS A ip。
答案2
映射基本域example.com
并设置 DNS 记录,然后像下面这样映射另一个域,Google 就会生成一个使用CNAME
记录的不同 DNS 配置。
*[master][~]$ gcloud beta run domain-mappings create --service=my-service --domain www.example.com
Creating......done.
Waiting for certificate provisioning. You must configure your DNS records for certificate issuance to begin.
NAME RECORD TYPE CONTENTS
www CNAME ghs.googlehosted.com.
我仍在等待 DNS 缓存到期以检查所有内容,但如果我现在不发布此内容,我将永远不会发布。
答案3
正如 @JohnHanley 的评论中提到的,正确的方法是为每个子域添加一个映射(www 也是一个子域),然后继续使用每个入口更新 DNS。为此,您可以按照以下步骤操作:
在 Cloud Run 中将您的服务映射到自定义域后,您需要在域名注册商处更新 DNS 记录。Cloud Run 会生成并显示您需要输入的 DNS 记录,您可以检索每个条目的记录这里。您必须在域名注册商处添加指向 Cloud Run 服务的这些记录,映射才能生效。我想强调下一部分文档因为它提到了 www 子域名:
当您将上述每个 DNS 记录添加到 DNS 提供商的帐户时:
- 选择上一步中返回的DNS记录的类型:A,或者AAAA,或者CNAME。
- 使用名称 www 映射到www.example.com
www
这是对子域名进行域名映射的正确方法