【问题标题】:Heroku redirect from example.com to www.example.com retaining HTTPS using AWSHeroku 从 example.com 重定向到 www.example.com,使用 AWS 保留 HTTPS
【发布时间】:2019-04-24 16:09:37
【问题描述】:

我有一个使用 SSL 证书设置的 Heroku 应用,但我的 DNS 不允许 Apex 级别的 CNAME 记录。这意味着,我不能将我的 A 记录指向我的 Heroku 应用 URL(A 级记录只能是 IP 地址,Heroku 不能提供静态 IP)。

还有其他建议使用其他 DNS 提供商的方法(在堆栈和 heroku 的指南中),但我想尝试使用 AWS(特别是 Route53)解决这个问题,同时在域中保留我们的 https://用于 SSL。

我找到了一些有关如何执行此操作的指南,但似乎有些复杂(标头搞砸了,无法保留 https 等)。我将在下面提供一个答案,概述我是如何实现这一目标的,但鼓励讨论我的解决方案可能产生的影响。

【问题讨论】:

    标签: heroku amazon-s3 amazon-route53


    【解决方案1】:

    我在 Heroku 网站上发现了这份指南: Configuring Amazon Route 53 DNS for Your Heroku App

    解决方案的概要是创建一个 S3 存储桶作为静态网站主机,它只是重定向到您的 Route53 托管区域。以下是基本步骤:

    1. 在您的 Route 53 管理控制台上使用您的域 (example.com) 创建一个新的托管区域
    2. 为 www.example.com 创建一个 CNAME 条目,并将值设置为您的 heroku 自定义域 (www.example.com.herokudns.com)
    3. 创建一个与您的域 (example.com) 同名的 S3 存储桶,并将其设置为静态网站主机
    4. 在静态网站托管设置中将此设置为“重定向请求”并将目标设置为 www.example.com 并将协议设置为 https
    5. 返回 Route 53 并添加一个 A Level Alias,目标为您新创建的存储桶
    6. 最后将您的 DN 提供商名称服务器指向您的新 Route 53 托管区域(您可以从管理控制台的侧面板中获取名称服务器列表)

    就是这样!在您的名称服务器上的 TTL 到期后,您的站点应该启动并运行,并且 example.com 和 www.example.com

    【讨论】:

    • 这似乎不适用于我们的案例。我们有一个父域 example.com 托管在 GoDaddy 上。我们在 Route53 上为 aa.example.com 创建了一个托管区域,并在 GoDaddy 中指定了 NS 条目(一个应用程序在 Heroku 上运行)。在 aa.example.com 托管区域中创建了指向 Heroku DNS 目标的 CNAME 记录(www.aa.example.com 正在按预期工作)。 aa.example.com 不起作用(即使在托管来自 S3 存储桶的静态网站重定向之后)
    猜你喜欢
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多