如何将 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 Amplify 前端连接到 AWS Elastic Beanstalk 后端时出现 CORS 问题
从 Elastic Beanstalk 连接到托管在 AWS ec2 上的 MongoDB