HaProxy简介

  • 它是免费、快速并且可靠的一种解决方案
  • 适用于那些负特大的web站点,这些站点通常由需要会话保持或七层处理
  • 提供高可用性、负载均衡以及基于TCP和HTTP应用的代理

节点准备

节点 角色 ip
lvs1 代理服务器 192.168.2.5
192.168.4.5
web1 web服务器 192.168.4.100
web2 web服务器 192.168.4.200

web服务器要求

  • 安装httpd并且启动服务
  • 关闭防火墙和selinux
1
2
3
4
5
#web1
[root@web1 ~]# echo "192.168.4.100" > /var/www/html/index.html

#web2
[root@web2 ~]# echo "192.168.4.200" > /var/www/html/index.html

代理服务器安装软件

  • 关闭keepalived服务
  • 配置IP
1
2
3
4
5
6
7
8
9
[root@lvs1 ~]# yum install haproxy -y
[root@lvs1 ~]# vim /etc/haproxy/haproxy.cfg
#在最后添加
listen websrv *:80
balance roundrobin
server web1 192.168.4.100:80 check inter 2000 rise 2 fall 5
server web2 192.168.4.200:80 check inter 2000 rise 2 fall 5

[root@lvs1 ~]# systemctl enable --now haproxy.service

浏览器访问测试

  • 访问192.168.2.5
  • 实现负载均衡

状态页面

1
2
3
4
5
6
7
8
9
[root@lvs1 ~]# vim /etc/haproxy/haproxy.cfg
#在最后添加
listen stats 0.0.0.0:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #进入管理界面查看状态信息
stats auth admin:admin #统计页面用户名和密码状态

[root@lvs1 ~]# systemctl restart haproxy.service

浏览器访问测试

  • 192.168.2.5:1080/stats
  • 用户密码:admin:admin

参数说明

  • Queue队列数据的信息(当前队列数量,最大值,队列限制数量)
  • Session rate每秒会话率(当前值,最大值,限制数量)
  • Sessions总会话量(当前值、最大值、总量,Lbtot:total number of times a server was selected选中一台服务器所用的总时间)
  • Bytes(入站、出站流量)
  • Denied(拒绝请求、拒绝回应)
  • Errors(作为请求、错误连接、错误回应)
  • Warnings(重新尝试警告retry、重新连接redispatches)
  • Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机器数量、down机时长)