我目前有一个DNS设置,所有内容和应用程序都托管在同一台云服务器上 - example.com。
演示网站在 example.com 上,www 通过 CNAME 转发给 example.com,然后各种内部应用程序(例如 app.example.com)也与 CNAME 记录一起转发给 example.com。在我的服务器上运行的 NGINX 从那里获取它,将子域路由到不同的应用程序。
我想在外部服务上托管演示网站,我对如何更新我的 DNS 配置感到困惑 - 特别是如何处理我的 A 记录。
我可以为 www 创建一个 CNAME,该 CNAME 将 www.example.com 转发到我的外部托管服务。但是 example.com 仍然指向我自己的服务器...如果我理解正确,如果我 example.com 转发给 www.example.com,那么我的所有应用程序都会崩溃,例如 app.example.com。
我有什么选择来处理这个问题?
我的想法(通过搜索)是,如果我想 example.com 指向外部服务,那么我应该
1) 创建一个新的域 api-example.com,其 A 记录指向托管我所有应用的服务器
2) 为指向 api-example.com example.com 上的所有应用子域进行 CNAME 记录
3)将 example.com 转发到 www.example.com,并将 www.example.com 转发到外部服务。
此配置会起作用吗?有没有更简单的方法可以得到相同的结果?
您的计划很好,除了一件事:通常,您不能拥有域根(顶点)的CNAME
记录。这意味着您的外部演示网站托管必须提供一个 IP 地址,并且您将创建一个A
记录,该记录将example.com
指向该地址。然后,您可以拥有一条CNAME
记录,只需将www.example.com
混叠到example.com
。
此外,请确保在步骤之间留出足够的时间,以确保所有 DNS TTL 都已过期,这样就不会遇到 DNS 缓存问题。
有关域顶点 CNAMEing 问题的说明(和可能的解决方法),请查看 https://stackoverflow.com/a/33027309/1145196