我想用AWS CloudFront和S3桶托管我的反应前端。
目前,我的应用程序部署在一个EC2实例中,下面是大纲:
前端:在端口80
上运行的React应用程序。当用户转到https://myapp.com
时,请求被定向到my-ec2-instance:80
。
后端:表示运行在端口3000
上的JS。当用户在浏览器中加载前端时,当用户与网站交互时,http请求被发送到https://myapp.com/api/*
,后者被路由到my-ec2-instance:3000
;
我希望将前端从ec2实例中取出,并使用AWS CloudFront和S3桶进行主机,这样EC2实例就只能承载后端服务。
我读过AWS CloudFront / S3桶只能承载静态网站。
在这种情况下,我的React前端是静态的单页应用程序,还是动态的?
我能做吗?
发布于 2021-12-21 02:17:04
您的应用程序是动态的,因为您需要Express。S3只能提供静态内容,不能用于托管node.js应用程序。您仍然可以在一个S3实例中提供来自EC2和主机Express的静态内容,但是您的部署策略将更加复杂。
如果您在EC2实例中同时承载静态和动态内容,那么在CloudFront中您需要基于路径的路由,这很好地解释了here。
https://stackoverflow.com/questions/70393974
复制相似问题