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客户端

Haproxy负载均衡_第1张图片

实验步骤:

1、搭建haproxy服务

(1)安装依赖环境

Haproxy负载均衡_第2张图片

(2)编译安装haproxy

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

编译

Haproxy负载均衡_第3张图片

安装

Haproxy负载均衡_第4张图片

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

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

Haproxy负载均衡_第5张图片

Haproxy负载均衡_第6张图片

3、修改配置文件

Haproxy负载均衡_第7张图片

Haproxy负载均衡_第8张图片

Haproxy负载均衡_第9张图片

Haproxy负载均衡_第10张图片

或者做四层代理

Haproxy负载均衡_第11张图片

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

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

3、启动haproxy服务

Haproxy负载均衡_第12张图片

Haproxy负载均衡_第13张图片

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

(1)nginx2

Haproxy负载均衡_第14张图片

Haproxy负载均衡_第15张图片

(2)nginx3

Haproxy负载均衡_第16张图片

Haproxy负载均衡_第17张图片

5、测试

Haproxy负载均衡_第18张图片

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

测试

Haproxy负载均衡_第19张图片

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

Haproxy负载均衡_第20张图片

8、haproxy日志分割

Haproxy负载均衡_第21张图片

创建脚本便于分割日志

Haproxy负载均衡_第22张图片

测试

Haproxy负载均衡_第23张图片

Haproxy负载均衡_第24张图片

你可能感兴趣的:(负载均衡,运维)