在AWS上部署React + Express

时间:2018-07-26 02:23:08

标签: node.js reactjs amazon-web-services

我对AWS和Web开发还很陌生,所以如果我的问题看起来很傻,请多多包涵。

  1. 我有一个通过AWS Codestar部署的Express服务。服务地址是myservice.ap-southeast-2.elasticbeanstalk.com
  2. React应用已部署在S3存储桶上。

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

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

另一个选择是,由于Codestar实例化了EC2,所以我可以将React部署到EC2中。因此,EC2上的Express可以处理所有API请求,但仅用于静态文件,而index.html Express可以直接返回已部署的React资产。

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

1 个答案:

答案 0 :(得分:3)

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

要访问Express应用,请在ajax调用中将应用的IP(在AWS控制台> EC2>您的实例> IPv4公用IP或公用DNS(IPv4)下)命名为主机。

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