首页 > 解决方案 > 在 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。但我不确定它将如何在云上运行。

标签: amazon-web-servicesamazon-s3amazon-ec2

解决方案


这个问题有多种解决方案。

您可以www.example.com指向您的 S3 存储桶并api.example.com指向您的后端。

另一种解决方案是使用CloudFront并为其配置多个源:一个用于前端 (S3),一个用于后端(自定义源、API 网关或 Application Load Balancer)。然后你会有一个特定的行为,比如/api/*为你的后端服务。该解决方案的优点是在前端和后端都有一个 CDN,并避免了前端的 CORS 请求(+ CloudFront 提供的更多功能)。


推荐阅读