【问题标题】:Server configuration for REST API and web clientREST API 和 Web 客户端的服务器配置
【发布时间】:2017-12-14 17:26:05
【问题描述】:

我用 go (golang) 开发了一个 REST API,现在我想设计我的 Web 前端。我不知道如何将前端与后端分开。

我认为我有三个选择:

1- 在一台服务器上运行 REST API,在另一台服务器上运行前端网站。

2- 在同一台服务器上运行 REST API 和前端网站,但在不同的端口上。例如在 8080 端口上运行 REST,在 80 端口上运行前端网站。

3- 在同一服务器和同一端口上运行两者,但每个使用不同的 URL 路径(或子域)。

由于我不知道这些东西,请告诉我哪一个是正确的或最佳解决方案。或者有没有其他解决方案?我的网站有多大重要吗?

【问题讨论】:

  • 您不能执行 3,但您可以执行 1 和/或 2,但这取决于您的应用程序特有的许多事情。
  • @jmugz3 你实际上可以做 3,但你必须在你的服务器前面使用 NGINX。另一种方法是使用相同的 Go Server 并根据请求标头进行子路由
  • @GurbakhshishSingh 我可以用一个 NGINX 运行 2 个 Go 服务器吗?第二种方式的缺点是什么?
  • @amir 您可以在不同的 localhost 端口上本地运行 2 个 go 服务器,并使用 NGINX 将基于子域的端口转发到不同的 localhost 端口,即使您运行的是单个 go 服务器,也不应该在其上运行它端口 80,因为它需要 root 访问权限,您不应该这样做,因此您应该始终在非标准端口上运行它们并使用 NGINX 进行端口转发

标签: rest api web server


【解决方案1】:

第一个或第二个选项在设置和开发时基本相同。因此,从这个角度来看,您不会失去或获得任何东西,唯一的决定因素是您的资源以及您希望将来如何使用您的后端。

目前,如果您只有一个应用程序/前端调用 API,将它们放在同一台服务器上将是更好的选择,因为与第二个选项相比,它的性能会略有提高。

但是,由于您为后端选择了 RESTful 设计,因此您可能希望将来将其重用于更多应用程序,并且如果您预计对 API 的调用增加会开始耗尽服务器资源,那么您的前端可能会受到影响,然后您应该考虑将后端重新定位到不同的服务器。

创建整个微服务、RESTful 后端设计“模式”以解耦前端和后端以实现更好的扩展,但这可能不是每个人都需要的,您必须估计您的应用程序实际使用的数量并考虑是否您实际上可能会在其他地方重用 API(或者如果您想为其他人提供 API)。

最后,如果第一个和第二个选项目前为您提供相似的投资金额,请选择第一个,如果不是,请将正面和背面保持在同一台服务器上,如果将来您意识到您需要扩展,您可以将 API 重新定位到不同的服务器/服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多