haproxy

haproxy

image-20240630171139338

  • 也是一款实现负载均衡的调度器
  • 也适用于发在特别大的web站点
  • HAProxy的工作模式
    • mode http:只适用于 web服务
    • mode tcp:适用于各种服务
    • mode health:仅做健康检查,很少使用

【1】、配置IP

# 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

# 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】、测试

[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为我们提供了可视化的查看网站,需要自己配置

# 在haproxy
listen stats # stats 自己设置
    bind 0.0.0.0:1080   # 网站监听端口,自己设置
    stats refresh 30s  # 网站每隔30s刷新
    stats uri /stats
    stats auth admin:admin  # 添加验证 用户名:密码

image-20240630181101691

负载均衡调度器比较

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
posted @ 2024-07-21 16:15  Linux小菜鸟  阅读(13)  评论(0编辑  收藏  举报