我有一个使用 SSL 证书设置的 Heroku 应用程序,但我的 DNS 不允许 Apex 级别的 CNAME 记录。这意味着,我无法将 A 记录指向 Heroku 应用程序 URL(A 级记录只能是 IP 地址,Heroku 无法提供静态 IP)。
还有其他方法(在堆栈上和 Heroku 的指南上)建议使用其他 DNS 提供商,但我想尝试使用 AWS(特别是 Route53)解决此问题,同时还在 SSL 域中保留我们的 https:// 。
我找到了一些关于如何执行此操作的指南,但似乎存在复杂性(标头混乱,无法保留 https 等)。我将在下面提供一个答案,概述我是如何实现这一目标的,但鼓励讨论我的解决方案可能会产生什么影响。
我在 Heroku 网站上发现了这个指南:为您的 Heroku 应用程序配置 Amazon Route 53 DNS https://devcenter.heroku.com/articles/route-53
该解决方案的概要是创建一个 S3 存储桶作为静态网站主机,仅重定向到您的 Route53 托管区域。以下是基本步骤:
- 使用您的域 (example.com) 在 Route 53 管理控制台上创建新的托管区域
- 为 www.example.com 创建一个 CNAME 条目,并将值设置为您的 heroku 自定义域 (www.example.com.herokudns.com)
- 创建与您的域名(example.com)同名的 S3 存储桶,并将其设置为静态网站主机
- In the settings for static website hosting set this to "Redirect Requests" and set the target as www.example.com and the protocol to https
- 返回 Route 53 并添加 A Level 别名,目标为您新创建的存储桶
- 最后将您的 DN 提供商名称服务器指向新的 Route 53 托管区域(您可以从管理控制台的侧面板获取名称服务器列表)
就是这样!在您的名称服务器上的 TTL 到期后,您的站点应该启动并运行,并且 example.com 和 www.example.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)