1,总结nginx:他是负载均衡的软件。足够的稳定,支持动静分离。nginx主要是用在应用http请求这块。
常见的负载均衡的设备:F5 硬件设备非常贵,lvs是基于linux的系统层面的,非常快,非常稳定,不支持动静分离。
2,算法:
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端的服务器down掉,能自动剔除。
weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
ip_hash
每个请求按访问ip的hash结果分配,这样每个访客,固定一个后端服务器,可以解决session问题。
fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
----------------------------------------------------------------------------------------------------------------------------------
所谓的四层就是基于IP+端口的负载均衡;
七层就是基于URL等应用层信息的负载均衡;
同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。
换句话说,二层负载均衡会通过一个人虚拟的MAC地址接收请求,然后再分配到真是的MAC地址;三层负载均衡会通过一个虚拟IP地址
接收请求,然后再分配到真实的IP地址。
四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;
七层通过虚拟的URL或者主机名接收请求,然后再分配到真实的服务器。
----------------------------------------------------------------------------------------------------------------------------------
优缺点:
七层负载均衡也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设置设置的服务器选择方式,决定最终的内部服务器。
以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可以接收到
客户端发送的真正应用层内容的报文,然后再根据改报文中的特定手段,再加上负载均衡设备设置的服务器选择方式,决定最终的内部服务器。负载均衡在
这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的
对负载均衡设备的要求更高,处理七层的能力也必然低于四层模式的部署方式。更智能。
原文:https://www.cnblogs.com/fuckingPangzi/p/10140967.html