Nginx七层负载均衡原理解析
一、网络协议:应用层
- 七层负载均衡主要工作在网络七层ISO协议的第七层,即应用层。由于在应用层主要是处理对应的应用层协议的相关数据,如HTTP协议,而无法操作传输层TCP连接相关细节,故在七层负载均衡当中,负载均衡器主要是基于应用层协议的相关数据来进行请求转发,如对于HTTP协议,则主要是基于HTTP的Header头部信息、URL信息、Cookies等信息来进行集群节点的选择。由于负载均衡器需要解析应用层协议的相关数据,然后进行请求转发,所以CPU资源开销会较大。七层负载均衡的典型实现是Nginx。
二、与负载均衡器的连接建立
- 其次,对于七层负载均衡的负载均衡器而言,由于无法做到与四层负载均衡一样修改TCP连接的目标IP和端口号,所以客户端需要首先与负载均衡器建立一个TCP连接,然后负载均衡器再与选中的集群节点建立TCP连接,所以总共需要建立两个TCP连接。
- 该客户端与该集群节点的后续请求和响应的相关数据都需要经过负载均衡器来传输,所以负载均衡器需要处理所有的数据传输,工作负载较高,性能较低。工作过程如下图所示:
三、与四层负载均衡比较
- 相对于四层负载均衡,在七层负载均衡的实现中,由于负载均衡器需要对应用层协议数据进行解析,所以CPU开销较高。并且需要中转客户端与服务节点的数据传输,所以整体性能和吞吐量相对较低。
- 不过好处是可以更加灵活和智能地利用应用层协议的数据进行请求转发,如基于集群节点的最少连接数,最小响应时间等选中对应的一个集群节点来进行请求的动态转发。除此之外,还可以对请求和响应的数据内容进行修改,如压缩和加密等。
Nginx七层负载均衡原理解析相关推荐
- 网络七层协议_Nginx七层负载均衡原理解析
一.网络协议:应用层 七层负载均衡主要工作在网络七层ISO协议的第七层,即应用层.由于在应用层主要是处理对应的应用层协议的相关数据,如HTTP协议,而无法操作传输层TCP连接相关细节,故在七层负载均衡 ...
- FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡
###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...
- Nginx七层负载均衡配置
Nginx七层负载均衡 Nginx要实现七层负载均衡需要用到proxy_pass代理模块配置.Nginx默认安装支持这个模块,我们不需要再做任何处理.Nginx的负载均衡是在Nginx的反向代理基础上 ...
- Nginx七层负载均衡的案例
负载均衡案例 对所有请求实现一般轮询规则的负载均衡 upstream backend{server 192.168.200.146:9001;server 192.168.200.146:9002;s ...
- 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比
一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和 ...
- 七层负载均衡 nginx
七层负载均衡 简单解说: ============================================================== 一.集群的分类:(cluster) 1.高可用集 ...
- l4 l7 代理_什么是四层(L4 proxy)和七层负载均衡(L7 proxy)?区别是什么? 翻译自Nginx官网...
阅读前的小说明: 由于工作需要,本人正在研究微服务架构.而微服务的服务网格( Service Mesh )架构中,需要选择一种 proxy 作为每个微服务之间通讯的代理.因此为了定夺微服务中常用的两种 ...
- nginx的七层负载均衡
目录 1.负载均衡介绍 四层负载均衡 七层负载均衡 四层和七层的区别 2.nginx的配置文件 3.实验 测试 1.负载均衡介绍 四层负载均衡 所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输 ...
- 常见的服务器集群负载均衡技术:二三四七层负载均衡,DNS、LVS、F5、nginx负载均衡
服务器集群负载均衡技术 LB:load balance负载均衡器.有时也叫做director. DNS负载均衡 DNS负载均衡,最基础的是轮询方式,循环返回不同的服务器IP地址.可以同时返回多个服务器 ...
最新文章
- apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程
- Introduction to the Trusted Services Project
- Windows 中进程的相关操作
- unc 隐藏共享文件夹_你真的了解任务栏吗?win10任务栏居然隐藏了这么多小窍门...
- python编程之如何判断某个元素在不在列表里面
- 经典面试题(16):以下代码将输出的结果是什么?
- ubuntu虚拟机安装Gitlab后出现“Whoops, GitLab is taking too much time to respond.”
- CTR学习笔记代码实现1-深度学习的前奏LR-FFM
- nginx ---- nginx服务器版本升级和新增模块
- 计算机网络知识学习(核心:网络协议)-- 运输层
- C语言大作业-车辆信息管理系统
- ASP.NET操作EXCEL 合并单元格 大全
- python中死循环有用吗_Python里是否存在死循环
- 网际风客户端版本更新历史
- git push遇到failed to push some refs to 问题解决
- jq 下拉列表选中事件_JQuery select各种事件
- BestCoder Round #86 HDU 5804,HDU 5805,HDU 5806,HDU 5807
- Python中flask_sqlalchemy的使用
- 拍立淘-以图搜图中的图像搜索算法
- 机器学习(六)——高斯判别法(GDA)