node.js - 在 AWS 上部署 React + Express

标签 node.js reactjs amazon-web-services

我对 AWS 和 Web 开发还很陌生,所以如果我的问题看起来很愚蠢,请耐心等待。

  1. 我通过 AWS codestar 部署了 Express 服务。服务地址是 myservice.ap-southeast-2.elasticbeanstalk.com
  2. React 应用部署在 S3 存储桶上。

我的问题是,如何在生产环境中访问(例如进行ajax调用)React应用程序内的Express服务?只需附加任何 ajax 调用与服务地址?

React 应用程序所在的 s3 存储桶是由 AWS codestar 创建的,这是否意味着 React 和 Express 在同一台机器上?我的意思是,如果它们在同一台机器上,ajax 调用会更快,对吗?

另一个选择是,由于 Codestar 实例化了 EC2,我可以将 React 部署到 EC2 中。因此,EC2 上的 Express 可以服务除静态文件和 index.html 之外的所有 API 请求,Express 会直接返回已部署的 React Assets 。

有人知道哪种解决方案更好吗?

最佳答案

嗯,最好的解决方案就是更适合您需求的解决方案。例如,如果您需要服务器端渲染,最好将您的 React 应用程序添加到当前保存您的 Express 应用程序的 EC2 中;除此之外,我将继续为您编译的 React 应用程序使用 S3 存储桶。如果您担心性能/延迟,您可以使用 AWS Cloudfront来改善这些时间。

要访问 Express 应用程序,您可以在 ajax 调用中调用应用程序的 IP(在 AWS 控制台 > EC2 > 您的实例 > IPv4 公共(public) IP 或公共(public) DNS (IPv4) 下)作为主机。

澄清一下,您的 EC2 和 S3 存储桶位于不同的计算机中。

关于node.js - 在 AWS 上部署 React + Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51530103/

相关文章:

amazon-web-services - 将 AWS Route 53 DNS 记录静态链接到 EC2 实例

reactjs - 处理来自输入文件的文件并稍后上传 react redux

javascript - ES6 在构造函数之外解构赋值

node.js - 保护 Node 应用程序引擎中的 PubSub 推送端点?

node.js - 在 Windows 上安装 laravel-elixir 时出错 : npm ERR! EEXIST,打开 '\AppData\Roaming\npm-cache\837c67b9-adable-s tream-1-0-33-package-tgz.lock'

javascript - 如何在不重新加载的情况下在 react 路由器 v4 中推送路由

amazon-web-services - aws cloudformation list-stacks 给我重复的堆栈?

amazon-web-services - AWS EB 从 docker 部署 TypeError

javascript - Node.js 返回的不是一个函数

Node.js 服务器不释放内存