如何解决我可以为一个后端托管多个前端吗?
我认为我的问题很常见,我必须为我的每个客户托管一个单独的站点,但它是同一个应用程序,我的客户可以要求特定的更新(因为我的应用程序有一定的流程,可以更改) ,但应用程序已准备就绪,我们正在使用易于更新的配置文件。目前,我为每个客户端配备了一台服务器,但很快我就会在更新每台服务器时遇到很多麻烦(想象一下,必须输入 50 台不同的服务器来更新每台服务器,并且还要为每台服务器付费)。
我目前正在为我的服务器使用 Digital Ocean 服务。 我有一个用于后端的 Java Spring 应用程序,一个用于前端的 React JS,我的数据库是一个 postgres SQL。
我的想法是只使用 1、2 或 3 个服务器,从 1 个开始: 我所有的后端、前端和数据库都将在一台服务器内,但将为我拥有的每个站点运行一个前端,所有前端将连接到一个后端,而该后端将连接到一个数据库(该数据库将包含所有站点的所有数据),因为我不想为每个人都拥有一个数据库,所以我正在考虑使用 SQL View 来为我的每个客户处理数据。应该是这样的:
使用 2 个服务器: 基本上是一样的,但我会使用一个作为后端和数据库,另一个将包含我的所有前端,如下所示:
使用 3 个服务器: 基本上是一样的,但是一台服务器用于后端,一台用于数据库,一台用于前端,如下所示:
如果我的客户要求进行特定更改(仅针对他),我可以在我的应用程序中为每个客户创建一个目录,并为他更改配置文件,而对每个人进行更新只需 git pull。
>我在这方面没有很多知识,这就是为什么我问这是否可行。如果不是,我怎么能减少更新每台服务器的工作?我应该寻找其他服务器服务吗?我应该保持我的服务器原样并寻找脚本吗?
解决方法
似乎很容易实现。只需具有通用登录页面,当客户端登录时,验证并在其设备上存储登录 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();
}