我对AWS和Web开发还很陌生,所以如果我的问题看起来很傻,请多多包涵。
我的问题是,如何在生产环境中如何在React应用程序内部访问(例如进行ajax调用)Express服务?只需将任何ajax调用附加到服务地址?
其中的s3存储桶React应用程序是由AWS Codestar创建的,是否意味着React和Express在同一台机器上?我的意思是,如果它们在同一台机器上,ajax调用会更快,对吧?
另一个选择是,由于Codestar实例化了EC2,所以我可以将React部署到EC2中。因此,EC2上的Express可以处理所有API请求,但仅用于静态文件,而index.html Express可以直接返回已部署的React资产。
有人知道哪种解决方案更好吗?
答案 0 :(得分:3)
那么,最好的解决方案就是更适合您需求的解决方案。例如,如果您需要服务器端渲染,最好将您的React应用程序添加到当前拥有您的Express应用程序的EC2中。除此之外,我将继续对已编译的React应用程序使用S3存储桶。如果您担心性能/延迟,可以使用AWS Cloudfront来改善这些时间安排。
要访问Express应用,请在ajax调用中将应用的IP(在AWS控制台> EC2>您的实例> IPv4公用IP或公用DNS(IPv4)下)命名为主机。
请澄清一下,您的EC2和S3存储桶位于不同的计算机中。