首页 > 系统相关 >LVS、Nginx、HAproxy区别与选择

LVS、Nginx、HAproxy区别与选择

时间:2023-10-28 12:00:46浏览次数:32  
标签:HAproxy 负载 LVS 轮循 Nginx 转发 节点

LVS:是Linux Virtual Server的缩写,是一种基于Linux内核实现的高可用性、高性能的负载均衡技术 ;是基于四层的转发;

Nginx: 既是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发

HAproxy:是基于四层和七层的转发,是专业的代理服务器;

区别:

  • LVS由于是基于四层的转发所以只能做端口的转发而基于URL的、基于目录的这种转发LVS就做不了

工作选择:

  • HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做在很大并发量的时候我们就要选择LVS,像中小型公司的话并发量没那么大 选择HAproxy或者Nginx足已,由于HAproxy由是专业的代理服务器 配置简单,所以中小型企业推荐使用HAproxy。

Keepalive

  • 起初是为LVS设计的,专门用来监控lvs各个服务节点的状态,后来加入了vrrp的功能,因此除了lvs、nginx、haproxy可用做高可用软件。VRRP是virtual router redundancy protocal(虚拟路由器冗余协议)的缩写。VRRP的出现就是为了解决静态路由出现的单点故障,它能够保证网络可以不间断的稳定的运行。所以keepalive一方面具有LVS cluster node healthcheck功能,另一方面也具有LVS director failover。
    keepalive的两大功能:
    healthcheck和failover
  • LVS cluster node healthcheck

Keepalive高可用服务原理介绍

keepalive director高可用之间的故障切换转移,是通过VRRP协议实现的。在keepalive director工作时,主节点会不断的向备节点发送心跳消息,告知自己还活着,当主节点故障时,备节点无法接收主节点的心跳消息,此时就会启用自身的服务接管程序将主节点的IP和服务资源接管过来。当主节点恢复工作之后,又会释放IP资源和服务,恢复至备节点的角色。

VRRP协议原理简单介绍:VRRP是通过一种竞选协议协议机制来将路由的任务交给VRRP的路由器。

主要介绍3类负载均衡器的比较

LVS:
1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低
2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。
2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)
3、应用范围比较广,可以对所有应用做负载均衡;
4、不支持正则处理,不能做动静分离。
5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接)
6、配置 复杂,对网络依赖比较大,稳定性很高。

Ngnix:

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;

2、Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能;

3、Nginx安装和配置比较简单,测试起来比较方便;

4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;

5、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。

6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;

7、Nginx仅能支持http、https和Email协议,这样就在适用范围较小。

8、不支持Session的直接保持,但能通过ip_hash来解决。、对Big request header的支持不是很好,

9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、Ip-hash(Ip哈希)

10、Nginx还能做Web服务器即Cache功能。

HAProxy的特点是:

1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;

2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3、支持url检测后端的服务器出问题的检测会有很好的帮助。

4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现

5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。

6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。

9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)

10、不能做Web服务器即Cache。

标签:HAproxy,负载,LVS,轮循,Nginx,转发,节点
From: https://blog.51cto.com/u_7575433/8069366

相关文章

  • Nginx安装
    Nginx安装安装必须依赖yum-yinstallmakezlibzlib-develgcc-c++libtoolopensslopenssl-develPCRE安装下载依赖文件下载PCRE安装包,下载地址:http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz解压文件[root@ebs-135816opt]#tar-zxvfpcre-8.......
  • CentOS7安装Nginx并添加成服务【转】
    当我们使用Nginx作为Web服务器时,将其添加为系统服务可以更方便地管理它的启动和停止。下面是CentOS7将Nginx添加系统服务的方法步骤:创建nginx服务配置文件首先,创建一个nginx服务配置文件,并将以下内容复制到文件中:[Unit]Description=TheNGINXHTTPandreverseprox......
  • 19. 从零开始编写一个类nginx工具, 配置数据的热更新原理及实现
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目地址gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh......
  • 干货!分享Nginx搭建web测试报告服务器的落地方案
    Nginx搭建web测试报告服务器的实现思路有这样一个需求:把自动化测试过程中生成的html测试报告能够通过浏览器直接访问查看!实现思路很简单,就是部署一个web服务器,然后把测试报告部署到web服务器的指定目录即可,然后通过http://ip:port/path/报告名称.html的形式进行访问。我们通过ngin......
  • windows nginx 开机启动
    1、在安装目录打开命令行,redis-server--service-installredis.windows.conf2、windows+R---->services.msc找到Redis,右键属性,启动类型选择自动,服务状态选择启动。即可开机自启动3、小tips:卸载服务:redis-server--service-uninstall开启服务:redis-server--service-start......
  • 将nginx的access.log访问日志发送到rsyslog服务器并写入数据库
    nginx.conf(将原日志路径改为rsyslog服务器地址)access_logsyslog:server=10.10.14.64:514,facility=local6main;如果需要入库需要安装相应数据库的依赖包;mysql依赖:yuminstall-y rsyslog-mysql   pgsql依赖:yuminstall-y rsyslog-pgsql  还有很多其他依赖可以用......
  • 【记录10】华为云耀云服务器L实例-使用Docker拉取nginx镜像的部署示例
     Docker 是一个开源平台,用于开发、运输和运行应用程序。它使用容器化技术来包装应用程序及其依赖项,以便在任何环境中都能一致地运行。简单来说,Docker 可以将应用程序及其所有依赖项打包成一个容器,这样就可以确保它无论在哪里运行都表现一致。 ### Docker 的主要组件:1.......
  • angie nginx 替换方案
    angie是由nginx原始团队的一些人出去创业开发的nginx可选替换方案(core还是基于了nginx)同时提供了以下周边扩展angie一些比较方便的模块集成了proemtheus(内置)自己开发了可以方便监控提供了一个console基于angie的api提供了console管理参考默认构建命令......
  • 监控nginx
    1、nginx安装1.1、创建nginx目录mkdir~/docker/monitor_alarm/docker-server/nginx/conf.d-pcd~/docker/monitor_alarm/docker-server/nginx/conf.d在~/docker/monitor_alarm/docker-server/nginx/conf.d目录里面新增加nginx的配置文件cat>server.conf<<"EOF"serve......
  • 1.从零开始编写一个类nginx工具, 准备篇, 动手造轮子
    wmproxywmproxy将用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,后续将实现websocket代理,内外网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxyP......