amazon-web-services - 在 aws 中使用相同的域名进行前端和后端部署
问题描述
我正在尝试在 aws 上部署我的 Angular 应用程序和 nodejs 服务器。为了部署 Angular 应用程序,我使用s3
存储桶并启用静态网站托管。要部署nodejs
,我正在使用ec2
. 我选择将服务器和角度前端分开。
我想知道这将如何提供给外界。我购买了一个域名,比如 www.example.com。我正在附加一个 s3 存储桶,因此在启动 www.example.com 时,我可以看到我的 Angular 应用程序。但我也想为我的 nodejs 服务器使用相同的域,因为我的 angular 应用程序正在对 nodejs 服务器进行 API 调用。我需要为我的后端服务器购买不同的域吗?在我的本地开发中,我只是在 localhost:4200 上运行我的前端,在 localhost:3000 上运行 nodje。但我不确定它将如何在云上运行。
解决方案
这个问题有多种解决方案。
您可以www.example.com
指向您的 S3 存储桶并api.example.com
指向您的后端。
另一种解决方案是使用CloudFront并为其配置多个源:一个用于前端 (S3),一个用于后端(自定义源、API 网关或 Application Load Balancer)。然后你会有一个特定的行为,比如/api/*
为你的后端服务。该解决方案的优点是在前端和后端都有一个 CDN,并避免了前端的 CORS 请求(+ CloudFront 提供的更多功能)。
推荐阅读
- spring-boot - 创建名为“jpaMappingContext”的 bean 时出错:调用 init 方法失败;:必须存在至少一个 JPA 元模型
- arrays - 无法读取未定义数组的属性“推送”
- firebase - 在 Google Cloud Storage 中将文件从 bucket1 复制到 bucket2
- nightwatch.js - 失败的断言不会失败/终止 nightwatch 中的当前测试用例
- php - 如何使用 Mysql 数据库验证 GET 方法表单
- c# - 分组和组合值DataTable相当大的列,c#
- mysql - brew services list 显示mysql正在运行但无法连接
- java - 如何编写可重用的类来发出 http 异步请求?
- node.js - 如何在 Angular 应用程序中设置 CookieService 的过期时间
- angular - 将 JSON webtoken 存储在 Angular 6 的 LocalStorage/Session Storage 中是一个明智的决定吗?