在最已经开始呢,咱先说呵呵甚么叫阻抗平衡,阻抗平衡呢,是将一大批允诺,依照允诺的文本,递送到相同的后端去展开适当的处置,进而提供更多阻抗分摊,Maignelay转换等机能。
对相同的阻抗平衡应用领域软件,有相同的网络流量递送演算法,今天,他们最市售较为非主流的三种阻抗平衡做两个对照,看一看她们依次的优劣,和在许多情况下怎样去做相互配合。
【四层和五层】
具体来说,说说四层和五层的差别;
四层阻抗平衡,指的是IP+路由器的阻抗平衡;
五层阻抗平衡,指的是如前所述WEB允诺,URL等网络层重要信息的阻抗平衡。
总之,反之亦然,除了如前所述MAC门牌号的四层阻抗平衡和如前所述IP门牌号的四层阻抗平衡。
四层阻抗平衡,主要就预测IP层和TCP/UDP层。
五层阻抗平衡,要预测网络层协定,比如说HTTP协定,URL,cookie等重要信息。
【有关LVS】
LVS的阻抗潜能极强,即使其组织工作商业模式较为简单,仅展开允诺的递送,所以其组织工作在第四层,没网络流量,在工作效率各方面最低。
LVS是在四层,能对几乎大部份的应用领域作阻抗平衡。
但是LVS对故障后端感知并不敏感,比如说在DR商业模式下,要是有两个后端服务器没配置VIP,就会导致允诺的一部分数据会直接丢失。
且LVS对网络环境的稳定性要求较高,如果允诺失败了,只能依赖于前端的应用领域自身的重试机制,阻抗平衡不对允诺展开重新下发。
所以LVS也很受限于网络架构,在设计之初就要考虑到网络架构是否满足LVS阻抗的前置条件。
【有关nginx】
同样的,nginx也能用于阻抗平衡,但是由于nginx需要对源端/目的端都建立连接,所以处置网络流量的速度受限于机器I/O,CPU内存等一系列配置,所以nginx的阻抗潜能相对较差。
nginx安装,配置都较为简单,与LVS对照,nginx不需要很严格的网络架构,只要网络能联通即可。
且nginx自身的重试机制,能保证允诺下发失败之后,会重新下发到健康的后端上。
但是,nginx即使没现成的热备机制,所以,存在单点故障的问题,一般需要搭配keepalived采用。
不过,nginx作为一款网络层阻抗平衡(后来引入stream模块之后,四层也支持了),能提供更多阻抗分摊,贮备转换,HTTPS写在,带宽限速,隐藏真实IP,隐藏真实路由器,屏蔽攻击等潜能,这是LVS所不能提供更多的。
【对照】
lvs和nginx都是现在很非主流的阻抗平衡方式,她们各有优劣,在生产环境需要依照其特点做选择。
LVSNginx 四层四层/五层抗阻抗潜能强弱配置性可配置性低同时也减少了人为出错的概率可配置性高能配置一些高级机能稳定性稳定性高有完整的双机热备方案稳定性低,有单机故障无现成的双机热备方案网络架构依赖强依赖非常依赖网络架构设计总之能采用较为简单的NAT方式解决此问题无依赖网络稳定性依赖依赖数据包递送到坏的后端,不会重新递送,会直接返回错误不依赖数据包递送到坏的后端并返回错误后,会尝试重新递送到健康的后端网络网络流量仅允诺网络流量经过lvs的网络,响应网络流量由后端服务器的网络返回。FULL_NAT同Nginx。大部份的允诺和响应网络流量都会经过nginx宿主机性能要求要求较低lvs仅仅做递送允诺,网络流量并不从它本身出去,所以瓶颈仅仅受限于网络带宽和网卡性能要求较高即使nginx需要对源端和目的端都单独建立连接,中间还涉及到一些数据包的解析处置,所以依赖宿主机的I/O性能和CPU内存转发方式同步转发lvs服务器接收到允诺之后,立即redirect到一个后端服务器,由客户端直接和后端服务器建立连接。异步转发在保持客户端连接的同时,发起两个相同文本的新允诺到后端,等后端返回结果后,由nginx返回给客户端其他 支持rewrite重写规则:能够依照域名、url的相同,将http允诺分到相同的后端服务器群组。节省带宽:支持gzip压缩,能添加浏览器本地缓存的header头。
【两者相互配合】
在采用上,一般最前端所采取的的策略应是lvs,也是dns的指向应为lvs平衡器,主要就原因在于nginx虽然机能强大,但是当作为后端的服务器规模庞大时,nginx的网络带宽就成了两个巨大的瓶颈。
但是当lvs作为阻抗平衡的话,一旦后端接受到允诺的服务器出了问题,那么这次允诺就失败了。
所以在许多情况下,nginx会作为lvs的节点展开阻抗平衡,这样,既能避免nginx的性能造成很严重的带宽瓶颈,也能利用nginx的错误重传避免lvs一锤子买卖,还能利用nginx的各种高级机能,包括https卸载,报文头修改等。
https://www.cnblogs.com/liuxia912/p/13897907.html