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

创建脚本便于分割日志

测试

相关推荐
慕雪华年7 小时前
【Docker】dockerfile识别当前构建的镜像平台
运维·docker·容器
我的青春不太冷8 小时前
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
运维·服务器·前端·学习
大秦王多鱼9 小时前
Kafka ACL(访问控制列表)介绍
运维·分布式·安全·kafka·apache
曾经的三心草9 小时前
小程序项目-购物-首页与准备
运维·服务器·小程序·项目·购物
苏-言12 小时前
Linux环境下的Java项目部署技巧:安装 Mysql
linux·运维·mysql
lljss202013 小时前
在 WSL2 中重启 Ubuntu 实例
linux·运维·ubuntu
对你无可奈何14 小时前
从Proxmox VE开始:安装与配置指南
运维·服务器·devops
神秘剑客_CN15 小时前
使用windows笔记本让服务器上网
运维·服务器·windows
黑牛先生17 小时前
【Linux】动静态库
linux·运维·服务器
vortex517 小时前
Shell基础:中括号的使用
linux·运维·bash·shell