我正在尝试部署使用node.js express后端(在AWS EC2实例上运行)的React应用。我在决定如何部署我的React App以确保它可以从后端获取时遇到麻烦。
我可以将我的网站example.com设置为定向到具有我的React应用程序的AWS S3静态托管。在这种情况下,我将不得不对ec2 public ip进行硬编码,例如在React代码中fetch(“ http://12.35.143.34/api/users/1”)。
我可以将我的网站example.com设置为使用Nginx定向到ec2实例,该实例将/ api调用定向到服务器,并将任何其他类型的调用定向到S3存储桶。
我对两种方法都读了不同的文章,所以我对哪种方法正确感到困惑。
编辑:还是有第三个选项,例如api子域?
答案 0 :(得分:1)
我的方式:
1。将您的节点应用程序部署到EC2,尝试附加DNS或仅通过aws使用给定的DNS-here
2。使用邮递员测试您的api。
3。将api url端点值更改为api DNS
4。部署(上传)您的dist /(构建目录)-here
5.config存储桶以充当静态网站主机-here
6.(可选)尝试将CloudFront配置到您的存储桶并获取应用程序dns-here
答案 1 :(得分:1)
有许多方法可以在AWS上运行基于NodeJS的应用程序。最适合您的选择取决于您的情况以及应用程序的开发方式。
express
,将其迁移到AWS Lambda非常简单。最后,要回答您的问题,我建议3:您应该使用多个CloudFront起源。我们使用S3存储桶原点来保存静态数据,并使用ELB原点来存储动态不可缓存内容。 Check this post for more information on how to do it。
如果您拥有域,则还可以创建证书并通过由CloudFront处理的HTTPS提供内容。
希望对您有帮助。