haproxy
- 也是一款实现负载均衡的调度器
- 也适用于发在特别大的web站点
- HAProxy的工作模式
- mode http:只适用于 web服务
- mode tcp:适用于各种服务
- mode health:仅做健康检查,很少使用
【1】、配置IP
sh
# client1
nmcli connection modify eth0 ipv4.method manual ipv4.addresss 192.168.4.100 autoconnection yes
# proxy
nmcli connection modify eth0 ipv4.method manual ipv4.addresss 192.168.4.5 autoconnection yes
# web1
nmcli connection modify eth0 ipv4.method manual ipv4.addresss 192.168.4.110 autoconnection yes
# web2
nmcli connection modify eth0 ipv4.method manual ipv4.addresss 192.168.4.120 autoconnection yes
【2】、安装配置haproxy
sh
# proxy
yum install -y haproxy
vim /etc/haproxy/haproxy.cfg
global # 全局配置
......
defaults # 变量
......
# 将defaults后面的配置删除,写如下配置
listen myweb
bind 0.0.0.0:80 # 谁可以访问proxy
balance roundrobin # 负载均衡调度算法
server web1 192.168.4.110:80 check inter 2000 rise 2 fall 5
# web服务器的地址 check:进行健康检查 inter:健康检查间隔时间 rise:健康检查两次可以ping通则认为正常 fall:健康检查失败5次认为断开
server web1 192.168.4.120:80 check inter 2000 rise 2 fall 5
【3】、测试
sh
[root@client1:192.168.4.100 ~]$curl http://192.168.4.5
Welcome to web2 on 192.168.4.120
[root@client1:192.168.4.100 ~]$curl http://192.168.4.5
Welcome to web1 on 192.168.4.110
# 检查web1的日志,可以看到都是proxy访问web1的
192.168.4.5 - - [30/Jun/2024:17:50:53 +0800] "GET / HTTP/1.1" 200 34 "-" "curl/7.61.1" "192.168.4.100"
192.168.4.5 - - [30/Jun/2024:17:50:55 +0800] "GET / HTTP/1.1" 200 34 "-" "curl/7.61.1" "192.168.4.100"
192.168.4.5 - - [30/Jun/2024:17:50:56 +0800] "GET / HTTP/1.1" 200 34 "-" "curl/7.61.1" "192.168.4.100"
同时,haproxy为我们提供了可视化的查看网站,需要自己配置
sh
# 在haproxy
listen stats # stats 自己设置
bind 0.0.0.0:1080 # 网站监听端口,自己设置
stats refresh 30s # 网站每隔30s刷新
stats uri /stats
stats auth admin:admin # 添加验证 用户名:密码
负载均衡调度器比较
LVS适用于需要高并发性和稳定性
Nginx适用于静态文件服务器和反向代理等应用层负载均衡场景
HAProxy则具备较为丰富的功能和灵活性,适用于多种负载均衡场景
【1】、LVS(Linux Virtual Server)
优点
- 高性能:LVS使用Linux内核中的IP负载均衡技术,能够实现非常高的并发处理能力
- 稳定性:LVS经过长时间的实践应用,成熟稳定,被广泛使用
- 可用性:支持高可用性的配置,可以实现故障自动切换,提供无中断服务
- 灵活性:可根据需要采用多种负载均衡算法
缺点
- 配置复杂:相比于其他两个技术,LVS的配置相对于复杂,需要更深入的了解和配置
- 功能相对局限:LVS主要是传输层负载均衡技术,无法想Nginx和HAProxy那样对应用层协议进行处理
【2】、Nginx
优点
- 高性能:Nginx采用了基于事件驱动的异步非阻塞架构,能够处理大量并发连接
- 负载均衡:Nginx具备内置的负载均衡功能,可以根据配置进行请求 的转发
- 丰富的应用:Nginx支持反向代理、静态文件服务、缓存、SSL等,在web服务器领域有很广泛的应用
缺点
- 功能相对较少:相比于LVS和HAProxy,Nginx在负载均衡算法和健康检查等方面的功能相对较少
- 限制于应用层协议:Nginx只能对HTTP和HTTPS等应用层协议进行处理,无法处理其他协议
【3】、HAProxy
优点
- 灵活性:HAProxy支持丰富的负载均衡算法和会话保持的方式,可以根据需求进行灵活的配置
- 完整的功能:HAProxy支持高可用性配置、健康检查、故障恢复、SSL等功能,在负载均衡领域应用广泛
- 高性能:HAProxy性能优良,能够处理大量并发连接,并且支持异步IOmox】
缺点
- 内存占用:相对于Nginx和LVS,HAProxy在处理大量连接时消耗的内存高
- 高可用性:HAProxy需要借助额外的工具来实现高可用性,比如keepalived