随着您的网站或服务越来越受欢迎,您的 VPS 或服务器可能会因访客数量的增加而逐渐超载,从而导致效率下降。虽然传统的解决方案是在服务器达到容量上限时进行升级,但最终您会发现升级的成本可能超过其收益……
有什么方法可以解决呢?
另一种解决方案是将工作分担到多台服务器之间,但只有在您知道如何管理服务器之间的工作量时才建议这样做,这时就需要负载均衡器了。
负载均衡器可以从服务器构建,也可以是专用硬件设备。其目的是监控多台服务器上的负载,将传入流量引导到负载最小的服务器。这样做的一个附带好处是,如果组中的一个系统发生故障,那么负载均衡器会自动将负载从该系统引导到其余正常运行的系统,从而使您的服务保持在线。
有多种方法可以实现这一点,一种常见的方法是设置您的 DNS,使您的网站或服务看起来来自负载均衡器的 IP 地址。这样,您网站或服务的所有传入请求都会被定向到负载均衡器,然后负载均衡器可以在转发请求之前确定哪个是最佳目的地。之后,服务器的响应将被发送回负载均衡器,然后负载均衡器回复客户。
如果处理用户请求的服务器需要存储会话数据,则可以为负载均衡器配置持久性设置。这将确保特定用户的后续请求将被定向到之前在设定的持续时间内处理过其请求的服务器,从而无需在负载均衡器后面的服务器集群中复制用户的会话数据。
最常见的是,负载均衡器将使用循环方法来决定哪个服务器是路由传入连接的正确位置。这种基本方法涉及负载均衡器有条不紊地处理服务器列表,将新连接分配给列表中的下一个服务器,直到到达末尾,然后开始以循环结构再次将连接分配给列表顶部的服务器。不幸的是,这没有考虑到服务器可能具有不同的负载,这可能会影响特定服务器的响应时间。另一种(尽管更复杂)设置是让负载平衡器也监控各个服务器上的负载,并选择首先将新请求定向到负载最低的服务器。
设置负载平衡解决方案并不像配置负载平衡器和设置现有服务器的副本那么简单。您需要确保您的网站文件在服务器之间复制,并且数据库也复制。有时,数据库将被移动到自己的服务器上,从而允许一组服务器处理客户端,然后这些客户端将与管理数据库的较小服务器集群进行通信。