AWS设置:将单页静态应用程序前端从Web服务器移至S3

如何解决AWS设置:将单页静态应用程序前端从Web服务器移至S3

我当前的网站(具有CORS + API的单页应用程序)已部署在AWS EC2实例上,并通过ALB提供服务(主要是因为HTTPS设置比较容易,因为我现在只涉及一个区域)。 Web服务器被配置为服务于单页应用程序,但这就是有关前端的全部工作。我想将单页面应用程序移至S3,因此将后端与前端完全分开。问题是,就AWS设置而言,最有效的方法是什么?我可以提出以下建议:

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

任何帮助表示赞赏。

解决方法

如果您试图将前端和后端的基础架构完全分开,但要保留相同的域,则可以使用CloudFront。

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

  • 默认来源为S3静态网站。
  • 然后是指向原始ALB的其他起点。

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

看看Can I use a single CloudFront web distribution to serve content from multiple origins using multiple behaviors?文章,该文章涵盖了与我概述的行为类似的行为。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?