Haproxy负载均衡

nginx支持四层和七层转发

Haproxy也支持四层和七层转发

(重点) LVS-DR模式和LVS-NAT模式是基于四层还是七层转发?

四层转发(IP地址+端口)

LVS-TUN模式是四层+七层转发

基于四层的转发:

1、LVS

2、nginx

3、haproxy

基于七层的转发:

1、nginx

2、haproxy

haproxy

主要用于高并发的web场景。可以支持一万以上的并发请求。高性能的TCP和http的负载均衡器。版本:1.5.9

1、工作原理

和nginx、lvs一样,都是提供一个代理地址

2、支持的功能

(1)基于tcp四层和http七层的反向代理

(2)支持https的代理配置

(3)支持针对http请求添加cookie(缓存),转发到后端服务器(添加缓存)。haproxy自身不带缓存功能

(4)支持主备服务器切换(keepalived)

(5)实现基于端口的实时监控

(6)压缩响应报文

3、特点

(1)可靠性和稳定性非常好,可以和负载均衡的硬件设备f5 BIG相媲美

(2)可以同时维护40000-50000个并发,单位时间内处理最大请求数20000个

(3)可以支持8种负载均衡算法,但是haproxy不带缓存功能,却可以支持会话保持

(4)支持虚拟主机功能

4、负载均衡算法

(1)roundrobin轮询(常用)

(2)static-rr加权轮询(常用)

(3)leastconn最小连接数(常用)

(4)source根据请求的源IP进行调度

(5)uri根据请求地址进行调度

(6)url param根据URL参数实现调度(很少用)

(7)hdr(name)根据http的请求头锁定每一次http的请求(很少用)

(8)rdp-cookie(name)根据cookie的名称锁定每一次请求(很少用)

5、lvs、nginx、haproxy负载均衡的区别

(1)lvs基于linux内核实现负载均衡,性能最高,但对系统硬件要求比较高。nginx和haproxy基于第三方应用实现负载均衡(用户态),性能较低,最低的是nginx

(2)lvs可以实现ip+端口的四层负载均衡,无法实现基于http请求的转发。nginx和haproxy都可以实现四层和七层的转发

(3)lvs只能实现四层转发,所以只能检测端口(检测状态单一)。haproxy可以实现更复杂的(例如:端口、uri)

(4)haproxy虽然功能强大,但整体性能低于lvs,nginx性能比haproxy低。性能:lvs>haproxy>nginx(bug多,稳定性查,处理小集群足以)

(5)nginx主要应用是提供web服务或者缓存服务器,nginx的stream模块和upstream模块也可以支持集群,但对节点的健康检查能力不行,没有lvs和haproxy的监控性能好

6、haproxy缺点

(1)单节点部署(单实例运行)。代理服务器出现故障,整个负载集群全部不可用,必须结合keepalived

(2)haproxy是一个无状态的负载均衡器,没有缓存,依靠应用程序实现会话保持。状态不是保存在代理服务器,而是在后端服务器,或者依靠cookie

(3)日志问题:haproxy的日志较简单,只提供基本的请求日志和错误日志,更高级的日志需由人工自定义

7、haproxy实现负载均衡,haproxy日志单独存放实验

实验条件:

nginx1------20.0.0.11------haproxy服务

nginx2------20.0.0.21------后端真实服务器1------nginx服务

nginx3------20.0.0.31------后端真实服务器2------nginx服务

test1客户端

实验步骤:

1、搭建haproxy服务

(1)安装依赖环境

(2)编译安装haproxy

uname -r查看内核版本。只要比2628大,统一用2628

编译

安装

haproxy需要自己进行服务配置(自己指定主配置文件存放目录)

2、指定目录存放haproxy配置文件

3、修改配置文件

或者做四层代理

check intet 开启对后端服务器的健康检查,检查时间间隔2000ms

fall 3 连续3次检测不到后端服务器的心跳线,则认为该节点失效

3、启动haproxy服务

4、设置后端真实服务器真实静态页面

(1)nginx2

(2)nginx3

5、测试

6、模拟节点服务器故障------nginx2故障

测试

7、模拟节点服务器恢复------nginx2正常运行

8、haproxy日志分割

创建脚本便于分割日志

测试

相关推荐
不能跑的代码不是好代码8 小时前
Linux系统常用命令中文速查表
linux·运维·服务器
石一峰6999 小时前
深入理解 Linux 中断三层机制与 1-Wire 时序锁原理
linux·运维·服务器
运维老郭9 小时前
PostgreSQL编译安装实战
运维·postgresql
无限码农10 小时前
Linux上通过cmake编译uchardet
linux·运维·服务器
运维大师11 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
007张三丰11 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
ACP广源盛1392462567311 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
huainingning14 小时前
交换机通过ftp下载文件或者传输文件到ftp服务器
运维·服务器·网络
edwarddamon14 小时前
CentOS 7 国内安装 Docker CE(阿里云源)
运维
Championship.23.2415 小时前
Linux 3.0 LVDS驱动开发详解
linux·运维·驱动开发·lvds