Nginx 理解四层/七层负载均衡

负载均衡是当有大量的并发请求来到服务器的时候,我们能够把这些请求分配到多台计算机节点上,让更多的节点来处理请求和响应,如此就可以大大缩减用户请求的等待时间。

1 四层/七层负载均衡

OSI网络模型共分为七层,即从用户发起请求到服务器接收需要经过七道工序。七层从上往下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

所谓负载均衡分层,与OSI七层模型相对应。其中七层负载均衡是指Nginx在应用层提供服务,四层表示Nginx在传输层提供服务。

1.1 四层负载均衡

四层负载均衡是基于IP+端口的负载均衡,原理是通过转发请求到后台的服务器,它只负责转发并且会记录当前连接是由哪个服务器处理的,后续这个连接的请求就由同一台服务器去处理,其实就是相当于长连接,这个长连接一旦打开就会一直处理连接的状态,它的性能就会非常的高了,四层是基于传输层的,主要基于tcp和udp。

  • F5硬负载均衡:商业级别,很贵

  • LVS四层负载均衡:它是Linux内核的负载,和协议没什么关系,主要是负责转发一些 请求的,它是基于CS端的

  • HA proxy四层负载均衡:同样支持转发功能,并且灵活性非常高,除了做四层以外也能够做七层的负载均衡

  • Nginx 四层负载均衡:既可以做负载均衡也可以做七层负载均衡,可以用于实现四层协议的转发、代理等等

1.2 七层负载均衡

是基于URL或IP的负载均衡,是基于应用层的,是针对http协议的一个负载均衡。

  • nginx七层负载均衡 对http协议或者邮箱协议做负载均衡,性能强劲

  • Haproxy 七层负载均衡 灵活性很高

  • apache七层负载均衡协议 灵活性不高,并发达到百万级的话性能会非常地差

总结:

  1. 四层做负载一般会使用LVS,Nginx更适合做七层负载。
  2. 四层负载均衡主要适用于处理基于tcp、udp协议,重点是用于转发请求,并不是处理请求;七层一般用于处理http协议的,适用于web服务器;七层是会处理请求的,比如它可以去处理静态资源的一些内容,可以进行压缩或者缓存。

1.3 DNS地域负载均衡

由DNS服务器来识别,根据IP地址采用就近原则访问最近的服务器

posted @ 2020-12-27 23:11  Awecoder  阅读(3308)  评论(0编辑  收藏  举报