smalls的头像

smalls

一个22岁的菜鸟程序员

我的技能

PHP

JAVA

JS

GO

PYTHON

文章目录

四层、七层与DNS负载均衡和OSI 网络模型

四层负载均衡(TCP/UDP)

1.F5 硬负载均衡

2.LVS 四层负载均衡

3.Haproxy 四层负载均衡

4.Nginx 四层负载均衡

七层负载均衡(HTTP)

1.Haproxy 七层负载均衡

2.Nginx 七层负载均衡

3.Apache 七层负载均衡

DNS 地域负载均衡

客户端 => DNS服务器 => 得到IP => 通过ip去请求服务端(DNS地域负载均衡是通过就近原则或者离我们最近的IP【服务器】)

OSI 网络模型

在讲到Nginx负载均衡的时候,其实Nginx是七层负载均衡,后续我们还会涉及到LVS,是四层负载均衡,七层和四层是什么概念呢?这就必须提到网络模型。网络模型是计算机网络基础的一部分内容,一般大学计算机系都会讲到此知识点,并且会作为考点;其实在面试过程中有时候也会被问到。所以我们还是有必要来复习或学习一下这块的一些重要知识的。

网络模型就是 OSI(Open System Interconnect),意思为`开放网络互联`,是由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版的,他是一种网络互联模型,也是一种规范。

网络模型分为七层,也就是当用户发起请求到服务器接收,会历经七道工序,或者说用户利用互联网发送消息给另一个用户,也会历经七道工序。这七层可以分为如下:

| 层级 | 名称 | 说明 |

| — | — | — |

| 第七层 | 应用层 | 与用户行为交互 |

| 第六层 | 表示层 | 定义数据格式以及数据加密 |

| 第五层 | 会话层 | 创建、管理以及销毁会话 |

| 第四层 | 传输层 | 创建、管理请求端到响应端(端到端)的连接 |

| 第三层 | 网络层 | 请求端的IP地址 |

| 第二层 | 数据链路层 | 提供介质访问与链路管理 |

| 第一层 | 物理层 | 传输介质,物理媒介 |

以上七层每层可以与上下相邻层进行通信。每一层都是非常复杂的,我们不在这里深究,我们以举例的形式来阐述每一层是干嘛的。

应用层:

这是面向用户的,最靠近用户,为了让用户和计算机交互,在计算机里会有很多软件,比如eclipse,idea,qq,nginx等,这些都是应用软件,用户可以通过这些应用软件和计算机交互,交互的过程其实就是接口的调用,应用层为用户提供了交互的接口,以此为用户提供交互服务。那么在这一层最常见的协议有:HTTP,HTTPS,FTP,SMTP,POP3等。Nginx在本层,为七层负载均衡。

举例:我要寄一封信给远在天边的老外LiLei,我会打开快递软件下单,这个时候我是`用户`,快递软件就是`应用服务`,是建立在计算机上的,提供给用户交互的一种服务或称之为手段。

表示层:

该层提供数据格式编码以及加密功能,确保`请求端`的数据能被`响应端`的应用层识别。

举例:我写中文给LiLei,他看不懂,这个时候我就会使用翻译软件把中文翻译成英文,随后信中涉及到一些比较隐私的信息我会加密一下,这个时候翻译软件和加密器就充当了`表示层`的作用,他用于显示用户能够识别的内容。

会话层:

会话可以理解为session,请求发送到接受响应的这个过程之间存在会话,会话层就充当了这一过程的管理者,从创建会话到维护会话最后销毁会话。

举例:我每次写信给LiLei都会记录在一个小本本上,寄信时间日期,收信时间日期,这本小本本上存有每次通信记录,这个小本本就相当于是一个会话的管理者。又或者说,我们平时在打电话,首先需要拨打电话,这是`建立会话`,对方接听电话,此时正在通话(`维持并管理会话`),通话结束后`会话销毁`,那么这也是一次会话的生命周期。

传输层:

该层建立端到端的连接,他提供了数据传输服务,在传输层通信会涉及到端口号,本层常见的协议为TCP、UDP,LVS就是在传输层,也就是四层负载均衡。

举例:我和LiLei通信过程中会借助快递公司,快递公司会分配快递员取件和寄件,那么这个快递员则充当`传输层`的作用。

网络层:

网络通信的时候必须要有本机IP和对方的IP,请求端和响应端都会有自己的IP的,IP就相当于你家地址门牌号,在网络上云服务器有固定的公网IP,普通计算机也有,只不过是动态IP,运营商每天会分配不同的IP给你的计算机。所以网络层也能称之为IP层,IP是互联网的基础根本。能提供IP分配的设备则为路由器或交换机。

举例:对于拥有固定IP的云服务来说,他们都是由腾讯云、阿里云等这样的供应商提供的,他们为云服务器提供固定ip;电信、移动、联调等运营商为你的计算机动态分配ip,每天都不同;则这些供应商和运营商都是网络层。同理,快递员由物流公司分配和管理,那么物流公司就是`网络层`咯。

数据链路层:

这一层会提供计算机MAC地址,通信的时候会携带,为了确保请求投递正确,所以他会验证检测MAC地址,以确保请求响应的可靠性。

举例:快递员在投递派送的时候,他(或客服)会预先提前打电话给你,确认你家地址对不对、有没有人、货到付款有没有准备好钱等等,这个时候快递员(或客服)就充当了`数据链路层`的职责。

物理层:

端到端请求响应过程中的媒介,物理介质,比如网线、中继器等等设备,都是你在端到端交互过程中不可缺少的基础设备。

举例:快递员在投递的过程中,你写的信会历经一些交通运输工具,比如首先通过飞机运输到国外,在海关统一拿到信以后会通过汽车运输到LiLei所在城市的物流集散地,最后快递员通过三轮电频车寄到LiLei家里,这个时候,飞机、汽车、三轮电瓶车都是`物理层`的媒介。

以上就是七层网络模型。Nginx存在于第七层,属于七层负载均衡;而第四层会有LVS,属于四层负载均衡

给作者打赏一下吧

文章评论

暂无评论
留言板
评论