【问题标题】:HTTP redirects in the AWS world, anything better than S3+CloudFront?AWS 世界中的 HTTP 重定向,有什么比 S3+CloudFront 更好的吗?
【发布时间】:2022-02-04 15:52:13
【问题描述】:

我正在将我的域名从 CloudFlare 的 DNS 移动到 AWS Route53,并且在某些情况下,我将 CloudFlare 的重定向用于已死的项目,以便他们的域转到另一个域中的页面,所以 https://projectx.com 转到 @ 987654322@.

我想在 AWS 中复制它,到目前为止我发现是这样的:

  1. 使用重定向到所需 URL https://example.com/projectx-is-no-more 的 S3 存储桶设置
  2. 为域设置 CloudFront,projectx.com
  3. 为 projectx.com 生成 TLS 证书并将其添加到 CloudFront,以便它可以同时提供 https 和 http。
  4. 设置 Route53 将域名解析到 CloudFront。

我设置了它,它正在工作,我什至在使用 CDK,所以我没有手动进行。但我想知道是否有一种方法可以设置这些重定向需要更少的移动部分。听起来这样的重定向将是一个很常见的问题,也许 Route53 或 CloudFront 会有一个快捷方式。有吗?

更新:仅使用 S3 不起作用,因为 S3 无法为 https://projectx.com 提供服务。 S3 无法响应任意域的 HTTPS 请求,无法为另一个域添加 TLS 证书(和密钥)。

【问题讨论】:

  • 最简单的解决方案是为example.comprojectx.com设置相同的IP,并在同一台服务器上处理两个域名(这对于Apache或Nginx Web服务器来说不是问题)。如果这是不可能的,S3 方式看起来最便宜和可靠。也可以使用应用程序负载均衡器 (ALB) 进行重定向,但与上传到 S3 的微小静态 index.html 相比,ALB 相当昂贵。
  • 在这种情况下,example.com 是在wordpress.com 中运行的 WordPress,因此我无法很好地控制那里的任何重定向(而且通常支持更多域可能需要花钱)。跨度>
  • 我对 S3 的特性有点误解。上网查资料后也回答了
  • 我在答案中添加了 GitHub 解决方案。如果您在使用其他平台时没有任何业务方面的限制,那将是一个杀手级功能。

标签: amazon-web-services amazon-s3 amazon-cloudfront amazon-route53


【解决方案1】:

您可以在不包括 CloudFront 的情况下做到这一点。

您需要做的是创建 S3 存储桶projectx.com。在Properties 中转到Static website hosting。启用静态网站托管并选择 Redirect 作为托管类型(添加重定向 URL)。

您仍需要设置 Route53,但您现在将向此 projectx.com 存储桶添加别名,而不是转到 CloudFront

【讨论】:

  • 那不是缺少对 https 的支持吗?抱歉,我应该在问题中提到我需要对 http 和 https 的支持。
  • 可以选择协议:协议-可选无http https
  • 这是目标协议。没有办法拥有 S3 存储桶服务器 projectx.com。 S3 无法提供第三方 TLS 证书。
  • 我不在乎是谁发行的,只要它是针对 projectx.com 的(当然它是浏览器知道的发行者)。
【解决方案2】:

我查了资料,只看到三种可能的解决方案:

  1. 设置CloudFront + S3 *
  2. 设置Application Load Balancer
  3. 设置API Gateway + Lambda(可以使用mock integration代替Lambda,这样可以降低服务成本)
  4. 使用GitHub pagescustom domain

※ S3 只支持 HTTP 流量,所以我们需要为 HTTPS 添加 CloudFront:

Amazon S3 不支持对网站的 HTTPS 访问。如果您想使用 HTTPS,可以使用 Amazon CloudFront 为托管在 Amazon S3 上的静态网站提供服务。

在我看来,第二种方式非常容易设置,但运行 24/7 ALB 有点贵。以其他方式 Lambda 和 API Gateway price 取决于请求数。 CloudFront 似乎也比 ALB 是 cheaper

所以更好的解决方案取决于你有多少请求

第四个解决方案依赖于 GitHub 平台(比 AWS 的范围更广),但它完全免费并支持自定义域和开箱即用的 Let's Encrypt 证书。 您只需要使用静态 index.html 文件创建存储库,该文件将执行重定向

【讨论】:

  • 如果重定向是静态固定响应,则 API Gateway 不需要 Lambda。您可以使用带有固定响应主体的模拟集成。
  • @KaustubhKhavnekar 是的,你是对的。我不知道模拟集成的全部功能,但看起来有可能
猜你喜欢
  • 2010-12-23
  • 2016-12-08
  • 2015-02-27
  • 2020-09-21
  • 2017-10-17
  • 2013-04-07
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多