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日志分割

创建脚本便于分割日志

测试

相关推荐
蓝胖的四次元口袋41 分钟前
Docker Compose多容器编排与Nginx集群实战
运维·nginx·docker compose
懂软件的胡子个哥1 小时前
微信 API 消息回调怎么设计,才能避免丢消息和重复处理
运维·微信·架构·wechatapi·个人微信号二次开发
吉甫作诵1 小时前
Redis 常用命令大全:11 大类命令速查手册
运维·数据库·redis·缓存·nosql
Acrellea3 小时前
告别粗放式能耗管理!安科瑞EIOT平台助力产业园区智慧低碳运营
运维·安全·能源
Databuff3 小时前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
菜鸟学编程o3 小时前
Linux常见指令
linux·运维·服务器
pt10434 小时前
AIOps机器学习——当警报阈值被调高之后
运维·人工智能·自动化
迪康coolmu5 小时前
企业文件外发管控落地实践 —— 基于迪康端点安全一体化管理系统
运维·网络·经验分享·安全
见闻小天地5 小时前
四方电气DL300变频器面向雕铣机多工况的技术参数与适配验证
运维·人工智能·业界资讯
千舟软件6 小时前
【宿舍管理小程序】新生入住不靠纸质表
大数据·运维·服务器·科技·业界资讯