如何将 S3 托管的前端连接到 Elastic beanstalk 托管的后端?

Posted

技术标签:

【中文标题】如何将 S3 托管的前端连接到 Elastic beanstalk 托管的后端?【英文标题】:How do you connect an S3 hosted frontend to a Elastic beanstalk hosted backend? 【发布时间】:2019-08-28 08:13:26 【问题描述】:

我在我的 react 应用程序上运行了 npm build,并在 AWS 上打开了一个 S3 存储桶,将其更改为静态网站主机,并将 react build 文件夹的内容上传到其中。我现在可以访问前端部分了。

我的后端在 node 和 express 上运行,完全位于不同的包中。在整个开发过程中,我分别运行了“nodemon app”和“npm start”,并通过代理将两者连接起来。

我以前使用 Elastic Beanstalk 来运行 web 应用程序,但之前整个包是一体的,而且我从来不需要连接 2 个服务器实例,所以我不知道如何让前端发送 POST 请求并连接到从 S3 到 EBS 的 websocket。

例如,我的前端在开发过程中连接到后端:

endpoint: 'http://localhost:3000'
this.state.io = socket.connect(this.state.endpoint);

我现在是否将其更改为 EBS 实例的域名?

我也使用 Axios 来处理我的 POST 请求。前端如何知道具体连接到我的 EBS?

任何帮助将不胜感激,谢谢。

【问题讨论】:

我有一个几乎相同的问题,作为 2 年前提出的问题,我想您已经找到了解决方案。可以分享一下吗? 嗨,伙计,我最终使用了 Heroku。这是一个大学项目,Heroku 让它变得简单了很多。 【参考方案1】:

将端点设置为托管 API 的域。那应该是弹性豆茎。为避免 CORS 问题,将其全部设置在一个域下会更容易。为此,您可能需要 CloudFront,或者您可以采取捷径并在您的 Elastic Beanstalk 代理请求上安装 Apache。

【讨论】:

如果我将其全部设置在一个域下,我是否需要将前端和后端的所有包合并到一个 package.json 并将所有内容移动到一个文件夹中?如果在相同的环境中,React 是否还需要运行?感谢您的帮助

以上是关于如何将 S3 托管的前端连接到 Elastic beanstalk 托管的后端?的主要内容,如果未能解决你的问题,请参考以下文章

将外部域名连接到AWS S3网站

将 AWS Amplify 前端连接到 AWS Elastic Beanstalk 后端时出现 CORS 问题

从 Elastic Beanstalk 连接到托管在 AWS ec2 上的 MongoDB

有没有办法配置 Elastic Beanstalk 以连接到现有的 Oracle 数据库(没有 BYOL)?

如何使用 *** 限制对 S3 托管网站的访问

如何将我托管的 php 网站连接到本地服务器上的 SQL Server 数据库