【问题标题】:Can I host multiple front-ends for one back-end?我可以为一个后端托管多个前端吗?
【发布时间】:2021-02-03 12:18:48
【问题描述】:

我认为我的问题很常见,我必须为每个客户托管一个单独的站点,但它是同一个应用程序,我的客户可能会要求特定更新(因为我的应用程序有一定的流程,可以改变) ,但是应用程序已经准备好了,我们正在使用易于更新的配置文件。目前我为每个客户端配置了一台服务器,但很快我就会在更新每台服务器时遇到很多麻烦(想象一下,必须输入 50 台不同的服务器来更新每台服务器,并且还要为每台服务器付费)。

我目前正在为我的服务器使用 Digital Ocean 服务。 我有一个用于后端的 Java Spring 应用程序,一个用于前端的 React JS,我的数据库是一个 postgres SQL。

目前是这样的:

我的想法是只使用 1、2 或 3 台服务器,从 1 台开始: 我所有的后端、前端和数据库都将在一台服务器内,但将为我拥有的每个站点运行 onde 前端,所有前端都将连接到一个后端,而这个后端将连接到一个数据库(这个数据库将包含所有站点的所有数据),因为我不想为每个人都拥有一个数据库,所以我正在考虑使用 SQL View 来为我的每个客户处理数据。应该是这样的:

使用 2 台服务器: 它基本上是一样的,但我会使用一个用于后端和数据库,另一个将包含我所有的前端,如下所示:

使用 3 台服务器: 基本上是一样的,只是一台服务器用于后端,一台用于数据库,一台用于前端,如下所示:

如果我的客户要求进行特定更改(仅针对他),我可以在我的应用程序中为每个客户创建一个目录,并为他更改配置文件,并且为每个人更新将只是一个 git pull。

我在这方面的知识不多,所以我问这是否可行。如果不是,我如何减少更新每台服务器的工作?我应该寻找其他服务器服务吗?我应该让我的服务器保持原样并寻找脚本吗?

【问题讨论】:

  • 您提到的是一个多租户应用程序。我不确定您的解决方案处于哪个阶段。如果它处于开发的后期阶段,那么改变架构将非常困难。然后,您可以查看支持基础设施/团队。单独管理 50 台服务器需要大量支持工作。
  • 我的应用程序和服务器已经在为我的客户工作,这应该是一个相当大的改变,但雇用更新服务器的支持不会很有趣
  • 我搜索了这个多租户并发现了一个带有租户数据库的多租户,这应该更容易实现,因为我当前的客户已经填满了他们的数据库。
  • 虽然数据库设计是多租户的重要组成部分;还有其他考虑因素,例如应用程序的配置等。但是,打折,请参阅:docs.microsoft.com/en-us/azure/azure-sql/database/… 它提供了对多租户注意事项和模式的一个很好的看法。

标签: server digital-ocean


【解决方案1】:

似乎很容易实现。只要有共同的登录页面,当客户端登录时,验证并在他们的设备上存储登录 cookie。当客户端请求一个页面时,只需根据他们的身份验证 cookie 提供一个页面。

if(client == 1){
Require(front_end_client_1.html)
exit();
}


if(client == 2){
Require(front_end_client_2.html)
exit();
}

if(client == 3){
Require(front_end_client_3.html)
exit();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 2021-03-27
    • 2021-10-14
    • 2022-12-08
    • 2019-07-01
    相关资源
    最近更新 更多