目录
- haproxy的介绍以及部署
- haproxy
- 负载均衡调度器比较:
- 环境准备
- 配置haproxy
haproxy的介绍以及部署
haproxy
- HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。
- HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速(最新稳定版1.7.2于2017/01/13推出)。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。
负载均衡调度器比较:
- nginx: 可以工作在第4层和第7层。可以根据url进行负载均衡。正则表达式支持的更广泛。
- lvs: 效率最高。工作在第4层。
- haproxy: 可以工作在第4层和第7层。可以根据url进行负载均衡。支持有限的正则表达式。
环境准备
- client1:eth0 -> 192.168.88.10
- HAProxy:eth0 -> 192.168.88.5
- web1:eth0 -> 192.168.88.100
- web2:eth0 -> 192.168.88.200
搭建yum源,在两台web机上部署网站服务
web1->
192.168.99.100
web2->apache web server2
配置haproxy
# 装包
[root@haproxy1 ~]# yum install -y haproxy
[root@haproxy1 ~]# vim /etc/haproxy/haproxy.cfg
# 配置文件中,global是全局配置;default是缺省配置,如果后续有和default相同的配置,default配置将会被覆盖。
# 配置文件中,frontend描述haproxy怎么和用户交互;backend描述haproxy怎么和后台应用服务器交互。这两个选项,一般不单独使用,而是合并到一起,名为listen。
# 将61行之后全部删除,写入以下内容
61 listen myweb 0.0.0.0:80 # 定义本机监听地址
62 balance roundrobin # 调度算法为轮询
# 对web服务器做健康检查,2秒检查一次,如果连续2次检查成功,认为服务器是健康的,如果连续5次检查失败,认为服务器坏了
63 server web1 192.168.88.100 check inter 2000 rise 2 fall 5
64 server web2 192.168.88.200 check inter 2000 rise 2 fall 5
65
66 listen stats 0.0.0.0:1080 # 定义监控地址
67 stats refresh 30s # 设置监控页面自动刷新时间为30秒
68 stats uri /stats # 定义监控地址是/stats
69 stats auth admin:admin # 监控页面的用户名和密码都是admin
# 启服务
[root@haproxy1 ~]# systemctl start haproxy.service
# 使用firefox访问监控地址 http://192.168.88.5:1080/stats
# 客户端访问测试
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.5/; done
192.168.99.100
apache web server2
192.168.99.100
apache web server2
192.168.99.100
apache web server2
监控地址 http://192.168.88.5:1080/stats如下:
- **Queue:**队列长度。Cur当前队列长度,Max最大队列长度,Limit限制长度
- Session rate: 会话率,每秒钟的会话数
- Sessions: 会话数
- Bytes: 字节数。In收到的字节数,Out发出的字节数
- Denied: 拒绝。Req请求,Resp响应
- Errors: 错误
- Warning: 警告
- Status: 状态
- LastChk: 上一次检查。L4OK,第四层tcp检查通过
- Wght: 权重