我对 AWS 和 Web 开发还很陌生,所以如果我的问题看起来很愚蠢,请耐心等待。
- 我通过 AWS codestar 部署了 Express 服务。服务地址是 myservice.ap-southeast-2.elasticbeanstalk.com
- 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/