我应该在同一台服务器上托管网站和 REST API 还是拆分?

Posted

技术标签:

【中文标题】我应该在同一台服务器上托管网站和 REST API 还是拆分?【英文标题】:Should I host Website and REST API on the same server or split? 【发布时间】:2010-10-29 08:25:00 【问题描述】:

我有一个由网站和 REST API 组成的网络应用程序。我应该将它们托管在同一台服务器上还是应该将它们托管在不同的服务器上? “服务器”是指服务器集群 - 负载平衡器后面的几台服务器。

API 主要是入站流量,网站 - 主要是出站。

如果重要 - 托管在 Rackspace 和/或 AWS 上。

这是我目前看到的:

在同一台服务器上拥有网站和 REST API 的好处

简单部署 简单的扩展 - 速度很慢 - 只需启动另一个实例 单一负载平衡器配置 简单监控 简单,简单,简单... 有效使用全双工网络(API - 入站,网站 - 出站)

拆分的好处

API 过载不会影响网站加载时间 详细监控(我现在就知道哪个组件使用资源了)

有没有cmets?

谢谢

亚历山大

【问题讨论】:

【参考方案1】:

正如您所说,在大多数情况下,将 API 托管在与网站相同的服务器上会更有优势。所以我会坚持这个选项。

但如果您预测网站或 API 的流量分配,那么单独的服务器可能更适合。

【讨论】:

【参考方案2】:

如果这是在负载均衡器上,为什么不将服务和页面留在同一站点上,让负载均衡器/集群完成其工作?

【讨论】:

【参考方案3】:

您的优点/缺点列表是操作方面的考虑因素,但您也应该考虑应用程序的需求。

缓存? 安全性? 其他资源,即文件系统

这些可能适用也可能不适用,但如果您的应用程序架构在两者之间有所不同,请务必将这一因素纳入您的决定。

【讨论】:

以上是关于我应该在同一台服务器上托管网站和 REST API 还是拆分?的主要内容,如果未能解决你的问题,请参考以下文章

IIS8 - 在同一台服务器上托管 SSL 和非 SSL 站点

在 S3 上托管 React 页面并对 Elastic Beanstalk 上的服务器进行 REST api 调用

当两者都连接到同一个热点时,客户端无法访问服务器上托管的网站

在同一台服务器上托管多个 Rails 应用程序

可以 ping,但不能连接到来自同一网络的另一台机器上托管的端点 [重复]

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