如何部署分离的前端和后端?

Posted

技术标签:

【中文标题】如何部署分离的前端和后端?【英文标题】:How to deploy separated frontend and backend? 【发布时间】:2017-05-05 23:40:12 【问题描述】:

我正在开发一个新项目,其中 react/express 作为前端,loopback 作为后端 api。我在我的开发环境中使用不同的端口将它们分开。

我应该如何将它们部署到生产环境中?

    在同一台服务器上托管 - 将后端与不同的子域分开?

    在 2 台不同的服务器上托管 - 似乎无法使用相同的域。

【问题讨论】:

【参考方案1】:

我刚刚为 AWS 回答了 a related question。

你可以部署

静态托管服务CDN

上的前端 AWS S3 + AWS CloudFront Google Cloud Storage + Google Cloud CDN GitHub Pages + CloudFlare Now Surge Netlify 等

您在云计算服务

上的后端 AWS Elastic beanstalk 或 AWS EC2 Google App Engine Now Heroku 等

您可以在不同的主机上设置不同的子域,例如

app.domain.com 在 GitHub 页面上 api.domain.com 在 Heroku 上

【讨论】:

很好的答案,谢谢,对我帮助很大。只是有一个额外的问题。在这种情况下,我应该为前端和后端使用多少个容器实例?我知道后端,因为它接受大量传入请求,应该部署一个负载均衡器和几个实例。但是前端呢,既然我已经有 CDN,我应该使用等量还是只使用一个实例? "只有一个实例,因为我已经有 CDN" - 是的,只有一个。扩大规模是 CDN 的工作。 CORS 和/如果使用 httpOnly cookie 怎么样? s-s-r(例如 Next.js)呢?然后你的前端需要运行 Node.js。 @GG.,这是一个很好的答案。关于如何让后端 Heroku 与 S3 + Cloudfront 上的前端对话的任何文档?

以上是关于如何部署分离的前端和后端?的主要内容,如果未能解决你的问题,请参考以下文章

将前后端分离项目部署至远程服务器

[后端]gitlab之gitlab-ci自动部署

5_前后端分离

5_前后端分离

前端端口是怎么交互后端

如何在解耦的前端和后端中的每个请求中仅发送 http cookie(包含 jwt)?