我们正在构建一个多租户SAAS应用程序。每个客户都有自己的子域http://customername.mycompany.com。每个客户都有许多千兆字节的数据,这意味着他们必须被分配到特定的服务器并留在那里。
如果我有一个服务器场,并且有特定客户的请求,我该如何将请求定向到正确的服务器?
我的想法是,我必须创建某种自定义的可编程负载均衡器,以了解每个客户的生活位置并通过代理请求。
有更简单的方法吗?
如果没有,我在哪里可以找到这样的负载均衡器?我在网上找到的那些更像是设备,而不是可以查询数据库以找到正确的目标服务器的应用程序。
答案 0 :(得分:0)
我认为答案就在于问题;你提到用户将连接到username.mycompany.com。因此,使用DNS A记录将它们指向特定的IP。
将来,如果您希望在(例如2个)服务器之间对用户进行负载平衡,则可以在负载均衡器设备上创建虚拟IP(例如,运行LVS),然后将A记录指向 LB创建的“虚拟IP ”,并将用户分布到已配置的一组服务器上。
这就是使用子域比使用基于URL的访问(如company.com/username)更简单的原因,在这种情况下,您必须检查数据包的内容以查看请求的URL。通过使用子域,一切都可以在IP层完成。