如何部署同一个域名的前后端?

Soo*_*Kim 1 dns amazon-s3 amazon-ec2 amazon-web-services

我对部署和网络不是很熟悉,因为我主要是前端开发人员。我想用Laravel和React(分开,不与blade集成)创建一个项目,并将它们部署到AWS。我只想将 Laravel 用作 API 服务器,并且我计划将其部署在 EC2 上。如果我在 S3 上托管我的 React 应用程序,我怎么可能与在 EC2 实例上运行的 API 服务器共享同一个域?

我知道我可以有单独的子域,比如我的 React 应用程序的www.example.com和我的 API 服务器的 api.example.com。但是,如果我想将www.example.com用于我的 React 应用程序和www.example.com/api用于我的 API 服务器,我有哪些选择?您可以为我推荐哪些资源以更快地了解该主题?谢谢!

Chr*_*ams 5

由于您想使用 S3 和 EC2,您需要使用可以根据条件分发到两个端点的服务。

最好的服务是CloudFront,它支持分发到 S3 和 EC2(作为自定义源)。

要做到这一点,你将创建与您的分布原点的S3存储,并为API原点。由于您的 API 托管在/api/*路径上,因此您可以在通过行为添加辅助源时将其添加为路径模式

然后,CloudFront 会将任何请求路由/api/*到您的 EC2 源的路径。

我找到了一篇名为How to route to multiple origins with CloudFront 的文章,我希望这篇文章能更详细地解释实现这一目标的步骤。