1

我当前的网站(带有 CORS + API 的单页应用程序)部署在 AWS EC2 实例上,并通过 ALB 提供服务(主要是为了更轻松地设置 HTTPS,因为我现在只覆盖一个区域)。Web 服务器被配置为为单页应用程序提供服务,但这就是它在前端所做的一切。我想将单页应用程序移至 S3,从而将后端与前端完全分开。问题是,就 AWS 设置而言,最有效的方法是什么?我可以想出以下几点:

  • 将域指向 S3 实例以提供前端文件,将 API 调用指向 ALB 公共 DNS 地址
  • 保持域原样指向 ELB,将端口 80 和 443 路由到 S3,更改 API 端口并将该端口路由到 EC2
  • ...

任何帮助表示赞赏。

4

1 回答 1

1

如果您尝试完全分离前端和后端的基础设施但保持相同的域,您可以使用 CloudFront。

在 CloudFront 中,您将在您的分配中创建 2 个源:

  • 默认来源是 S3 静态网站。
  • 然后是一个指向原始 ALB 的附加源。

您将配置此 CloudFront 分配的行为,以便当路径与特定模式匹配时,即api/*会将流量转发到 ELB。如果不匹配,它将默认为您的 S3 存储桶。

查看我可以使用单个 CloudFront Web 分配来使用多种行为从多个来源提供内容吗?文章涵盖了与我概述的类似行为。

于 2020-09-10T18:53:59.793 回答