haproxy

一、haproxy

1、haproxy:常见的负载均衡软件

(1)可以支持一万以上的并发请求,高性能的tcp和http负载均衡器
(2)主要用于高并发的web站点
(3)工作原理和nginx一样、lvs都一样

2、haproxy:支持四层和七层转发

3、haproxy支持的功能

(1)tcp和http反向代理
(2)https的代理配置
(3)可以针对http请求添加cookie,转发到后端服务器(添加缓存)
(4)也支持主备服务器切换(可以和Keepalived一起使用)
(5)基于端口的实时监控
(6)压缩响应报文

4、haproxy的特点

(1)可靠性的稳定性非常好,可以和硬件f5(BIG),可以与负载均衡的硬件设备相媲美
(2)同时维护40000-50000个并发连接,单位时间内处理最大请求数20000个
(3)支持8种负载均衡算法,但是haproxy不带缓存功能,但可以支持会话保持
(4)支持配置虚拟主机

5、LVS的DR和nat都是基于四层的转发,tun模式是基于四层+七层的转发

6、基于四层的转发(流量转发):

(1)lvs
(2)nginx
(3)haproxy

7、基于七层的转发(http转发):

(1)nginx

(2)haproxy

二、haproxy的负载均衡算法

1、roundrobin(rr):轮询

2、static-rr(wrr):加权轮询

3、leastconn:最小连接数

4、source:根据请求的源ip进行调度(sh)

5、uri:根据请求地址进行调度

6、url param:根据URL的参数显示调度(了解)

7、hdr(name):根据http的请求头锁定每一次http的请求(了解)

8、rdp-cookie(name):根据cookie的名称锁定每一次请求(了解)

三、lvs、nginx和haproxy之间的区别

(一)性能

1、lvs基于Linux内核实现负载均衡,性能最高,但是对硬件系统要求也比较高

2、haproxy和nginx基于第三方应用实现负载均衡,性能较低,其中nginx最低

3、haproxy虽然功能强大,但是整体性能低于lvs

4、nginx的性能比haproxy低

lvs——haproxy——nginx(bug多,稳定性也差)

(二)转发方式

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

(三)检测状态

1、lvs只能实现四层转发,监测的状态是单一的功能,只能进行端口检测

2、haproxy可以实现端口检测、也可以uri检测

(四)nginx的缺点

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

(五)haproxy的缺点

1、haproxy是单节点部署、单实例运行,若代理服务器出现故障,整个负载集群全部不可用

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

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

四、搭建haproxy

(一)基于http的七层代理

1、安装依赖环境

haproxy_第1张图片

2、编辑后端服务器的访问页面

3、编译安装haproxy

haproxy_第2张图片

4、Haproxy服务器配置

haproxy_第3张图片

haproxy_第4张图片

haproxy_第5张图片

haproxy_第6张图片

haproxy_第7张图片

5、haproxy系统服务的添加

haproxy_第8张图片

haproxy_第9张图片

haproxy_第10张图片

6、给后端服务器设置权重

haproxy_第11张图片

haproxy_第12张图片

7、测试:关闭nginx

haproxy_第13张图片

(1)恢复nginx

haproxy_第14张图片

(二)四层代理

haproxy_第15张图片

haproxy_第16张图片

1、模拟节点故障

haproxy_第17张图片

2、恢复节点

haproxy_第18张图片

(三)实现haproxy的日志重定向(单独存放)

haproxy_第19张图片

haproxy_第20张图片

haproxy_第21张图片

你可能感兴趣的:(lvs,服务器)