Nginx的集群负载均衡解析

1. Nginx的负载均衡概述

  • 当我们使用集群的时候,肯定会涉及到负载均衡,负载均衡可以提高吞吐量,提高并发性能,增强服务器的处理性能,当有大量的并发请求来到服务器的时候,可以把请求分发到不同的服务器,让更多的服务器来响应,如此一来,我们可以缩短服务器的处理时间,提升用户体验;
  • Nginx可以作为一个负载均衡器来使用,浏览器的请求必须先经过Nginx,才会被Nginx分发到Tomcat服务器,用户的每一次请求派发给哪台Tomcat都会由Nginx决定;
    在这里插入图片描述
  • 负载均衡分为四层和七层负载均衡,所谓四到七层的负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发请求;

2. 网络模型

当说到Nginx负载均衡的时候,其实Nginx是七层负载均衡,后续使用到LVS+Nginx做负载均衡的时候,是四层负载均衡,七层和四层是什么概念呢?这就必须提到网络模型。
网络模型分为七层,也就是当用户发起请求到服务器接收,会历经七道工序,这七层可以分为:

  • 应用层:这是面向用户的,最靠近用户,为了让用户和计算机交互,交互的过程其实就是接口的调用,应用层为用户提供了交互的接口,以此为用户提供服务,在这一层最常见的协议有:HTTP、HTTPS、FTP、SMTP、POP3等。Nginx在本层,为七层负载均衡;
  • 表示层:该层提供数据格式编码及加密功能,确保请求端的数据能被响应端的应用层识别;
  • 会话层:会话可以理解为session,请求发送到接受响应的这个过程之间存在会话,会话层就充当了这一过程的管理者,从创建会话到销毁会话;
  • 传输层:该层建立端到端的连接,提供了数据传输服务,在传输层通信会涉及到端口号,本层常见的协议为TCP、UDP、LVS就是在这一层,也就是四层负载均衡;
  • 网络层:网络通信的时候必须要有本机IP和对方的IP,请求端和响应端都会由自己的IP的,所以网络层也叫做IP层;
  • 数据链路层:这一层会提供计算机的MAC地址,通信的时候会携带,为了确保请求投递正确,所以该层会验证检测MAC地址,以确保请求性;

3. 四层负载均衡

四层负载均衡是基于IP+端口的负载均衡,主要基于TCP/UDP层和IP层,通过转发请求达到后台的服务器,只负责转发并且记录当前连接由哪个服务器处理的,后续这个连接的请求会由同一台服务器进行处理。
四层的负载均衡主要适用于TCP应用,比如基于C/S开发的桌面应用等场景。

4. 七层负载均衡

基于URL的负载均衡,除了支持四层负载均衡以外,还要分析引用层的信息,即针对HTTP协议URL或Cookie信息,可以对请求和响应做进一步的处理,类似于Servlet的Filter的作用,比如当用户访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器进行处理。
七层的负载均衡主要适用于应用HTTP协议,比如众多的网站等基于B/S开发的系统。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章