在最开始呢,咱们先说一下什么叫负载均衡,负载均衡呢,就是将一批请求,根据请求的内容,分发到不同的后端去进行相应的处理,从而提供负载分担,主备切换等功能。

对于不同的负载均衡软件,有不同的流量分发算法,今天,我们最市面上比较主流的两种负载均衡做一个对比,看看他们分别的优缺点,以及在很多情况下如何去做配合。

【四层和七层】

首先,说说四层和七层的区别;

四层负载均衡,指的是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

nginx 带宽_谈谈Nginx和LVS各自的优缺点以及使用相关推荐

  1. 和nginx比较_谈谈Nginx和LVS各自的优缺点以及使用

    在最开始呢,咱们先说一下什么叫负载均衡,负载均衡呢,就是将一批请求,根据请求的内容,分发到不同的后端去进行相应的处理,从而提供负载分担,主备切换等功能. 对于不同的负载均衡软件,有不同的流量分发算法, ...

  2. nginx 带宽_前端工程师不可不知的Nginx知识

    历史背景 互联网的全球化导致了互联网的数据量快速增长,加上在本世纪初摩尔定律在单核 CPU 上的失效,CPU 朝着多核方向发展,而 Apache 显然并没有做好多核架构的准备,它的一个进程同一时间只能 ...

  3. nginx 安装_安装Nginx的几种方式

    nginx安装 yum安装 手动下载安装包安装 下载地址:http://nginx.org/en/download.html 下载最新稳定版本Stable version,目前最新版本为:1.18.0 ...

  4. keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...

    概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...

  5. nginx 和php连接数,nginx限制ip连接数和带宽

    搜索热词 今天有个人问我,Nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用 ...

  6. nginx 部署_部署 hexo 到 nginx

    本来博客是使用 GitHub pages ,但近些日子访问贼慢,刚好手里有一台小机器,当然是要用起来(折腾就对了 ). 前置条件: 已购买 vps 和域名,按需备案. ssh 登录远程服务器,以 Ce ...

  7. nginx 带宽_Nginx的Gzip功能

    程序员自由之路 | 作者 urlify.cn/eyuUVr | 来源 什么是HTTP压缩 有时候客户端和服务器之间会传输比较大的报文数据,这时候就占用较大的网络带宽和时长.为了节省带宽,加速报文的响应 ...

  8. nginx优化_安全方面的优化

    1.1 Nginx优化分类 安全优化(提升网站安全性配置) 性能优化(提升用户访问网站效率) 1.2 Nginx安全优化 1.2.1 隐藏nginx版本信息优化 官方配置参数说明:http://ngi ...

  9. nginx 转发慢_为啥 Nginx 能轻松淦到几万并发?

    Nginx以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名.本文了解一下 Nginx为什么这么快! ❝为了防止不提供原网址的转载,特加原文链接:ningg.top/nginx-series ...

最新文章

  1. Android Handler sendMessage和 sendMessageDelayed的使用
  2. phpstorm 2016.3 终极激活方法
  3. .NET Core 首例 Office 开源跨平台组件(NPOI Core)
  4. python程序员工作总结_2016年终总结--一个Python程序猿的跨界之旅
  5. ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
  6. java 铁路管理信息系统_java多线程之铁路售票系统
  7. 魏俊妮《如何成为支持业务的HR》课程大纲
  8. 电脑重装系统不小心格式化了恢复文件教程
  9. bf2无限载具服务器,战地2 局域网 飞机无限
  10. 速看!2022年8月编程语言排行榜出炉!第一名太牛啦
  11. 【Python】安装PIL (Python Imaging Library )
  12. Google退出中国内地祭
  13. PCL1.10.1+VS2019+Qt5.14.2下载、安装及配置(强迫症福音~使用的软件均为最新版本)
  14. VMware的 Mount虚拟光驱问题
  15. 有限元分析的基本知识 (一份培训资料) (3)
  16. 从零点一开始机器学习之GPU运算性能和CPU性能对比(GPU算力表)
  17. 高中信息技术:信息技术教学论
  18. 自定义数值范围选择组件
  19. 计算机设备制造,制造计算机设备
  20. 直接在 iPad 上开发 App,Swift Playgrounds 4.0 发布。

热门文章

  1. windows下配置caffe-matlab接口
  2. android 设置setmultichoiceitems设置初始化勾选_Linux内核启动:虚拟盘空间设置和内存管理结构初始化...
  3. efi分区咋移动到c盘里_如何移动的EFI系统分区
  4. java 弹出软键盘_Android开发之弹出软键盘工具类简单示例
  5. foxmail怎么加入黑名单 foxmail导入黑名单邮箱地址的教程
  6. chrome浏览器无法加载百度网页启动组件怎么办
  7. RedisTemplate常用集合使用说明-opsForSet(五)
  8. SpringMVC 执行流程解析
  9. 口袋之旅html5超强账号,口袋之旅特攻排行榜 强大的绝对能力
  10. 正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)