Heroku使用AWS

时间:2018-11-22 02:32:14

标签: heroku amazon-s3 amazon-route53

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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