共计 975 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | SLB(服务器负载均衡):在多个提供相同服务的服务器的情况下,负载均衡设备存在虚拟服务地址,当大量客户端从外部访问虚拟服务 IP 地址时,负载均衡设备将这些报文请求根据负载均衡算法,将流量均衡的分配给后台服务器以平衡各个服务器的负载压力,避免在还有服务器压力较小情况下其他服务达到性能临界点出现运行缓慢甚至宕机情况,从而提高服务效率和质量,因此对客户端而言,RS(real server 实际服务器)的 IP 地址即是负载均衡设备 VIP(虚拟服务地址 IP)地址,真正的 RS 服务器 IP 地址对于客户端是不可见的。 |
二层负载均衡(mac):根据 OSI 模型分的二层负载,一般是用虚拟 mac 地址方式,外部对虚拟 MAC 地址请求,负载均衡接收后分配后端实际的 MAC 地址响应.
三层负载均衡(ip):一般采用虚拟 IP 地址方式,外部对虚拟的 ip 地址请求,负载均衡接收后分配后端实际的 IP 地址响应. (即一个 ip 对一个 ip 的转发, 端口全放开)
四层 SLB:配置负载均衡设备上服务类型为 tcp/udp,负载均衡设备将只解析到 4 层,负载均衡设备与 client 三次握手之后就会和 RS 建立连接;也就是说客户端握手成功后是直接与 RS 连接的,所以性能较高,但缺点就是由于负载均衡设备无法获取到请求内容,所以负载算法不多,例如无法根据请求的内容是图片还是文字转发到不同的服务器。四层 SLB 比较有代表性的产品有 LVS、F5。
七层 SLB:配置负载均衡设备服务类型为 http/ftp/https 等,负载均衡设备将解析报文到 7 层,在负载均衡设备与 client 三次握手之后,只有收到对应七层报文,才会跟 RS 建立连接。客户端发送报文,报文内容需要先经过 SLB 解析之后才会负载到 RS,这样就导致性能较低,但优点是负载算法丰富。可以根据请求内容,请求 URL 等来进行负载。七层 SLB 比较有代表性的产品有 Nginx、Apache、Haproxy
由于反向代理模式中在 RS 侧只能收到源为负载均衡设备 IP 的报文,因此可以使用防火墙增加安全性,只允许源 IP 为负载均衡设备的 IP 地址的报文通过,同时增加 X -Forwarded-For 字段也可以让 RS 只允许有此字段的报文进行访问,因此安全性相对较高。