文章目录
- Haproxy是什么
- 负载均衡的区别
- 四层负载均衡是什么
- 七层负载均衡是什么
- 七层负载均衡和四层负载的不同点
- HAProxy的配置
- listen配置同时实现前端和后端
- 如何采集haproxy的日志
Haproxy是什么
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。
负载均衡的区别
四层就是基于IP+端口的负载均衡,例如lvs。
七层就是基于URL等应用层信息的负载均衡
还有基于MAC地址的二层负载均衡
基于IP地址的三层负载均衡
(考虑OSI七层模型)
二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;
三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;
四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;
七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。
所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。
四层负载均衡是什么
四层的负载均衡,就是通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。
七层负载均衡是什么
七层的负载均衡,就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
七层负载均衡和四层负载的不同点
1.技术原理上
四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
4层负载均衡在中间传输层执行,它处理消息的传递,但不考虑消息的内容。
7层负载均衡不同于4层负载均衡,它在高级应用层上执行,会处理每个消息的实际内容,它可以根据消息内容(如URL或cookie)做出负载均衡决策。随后,7层负载均衡与选定上有服务器建立新的TCP连接并将请求写入服务器。
2.应用场景
七层应用负载的好处,是使得整个网络更智能化。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。
3.安全性
网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。
从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;
而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文。
HAProxy的配置
listen配置同时实现前端和后端
实验背景:
172.25.2.10 server1 haproxy反向代理端
172.25.2.11 serevr2 后端web1
172.25.2.254 serevr3 后端web2
172.25.2.254 真机测试
关闭selinux和firewalld ,后面几个关于haproxy的实验,都在此环境下
1.serevr1中
2.
2.注释掉fronted和backend的模块
3.添加配置内容
4.启动haproxy
5.
6.在serevr2和serevr3中安装httpd
7.真机浏览器测试访问
访问到监控页面
8.真机cur测试,发现负载均衡轮巡实现
如何采集haproxy的日志
打开udp端口
local 1~7 自定义的日志类型在日志采集文件中
日志设备(类型).(连接符号)日志级别 日志处理方式(action)