赞
踩
使用四台虚拟机,一台作为HAProxy调度器,2台作为Real Server、11台作为客户端,拓扑结构如下
主机名 | 网络配置 |
---|---|
client | 192.168.4.10/24 |
proxy | 192.168.4.5/24 |
192.168.2.5/24 | |
web1 | 192.168.2.100/24 |
web2 | 192.168.2.200//24 |
实验开始之前,需要先配置相应的IP
web1
yum -y install httpd
echo "web1 192.168.2.100" > /var/www/html/index.html
systemctl start httpd
web2
yum -y install httpd
echo "web2 192.168.2.200" > /var/www/html/index.html
systemctl start httpd
1)配置网络,安装软件
yum -y install haproxy
2)修改配置文件
global #全局设置 log 127.0.0.1 local2 chroot /var/lib/haproxy #工作目录 pidfile /var/run/haproxy.pid #haproxy的pid存放路径 maxconn 4000 #最大连接数,默认4000 user haproxy group haproxy daemon #创建一个进程进入deamon模式运行在后台 defaults #默认设置 mode http #默认模式{tcp四层调度|http七层调度|health健康检查} log global option httplog #日志类别http日志格式 option dontlognull #不记录健康检查的日志信息 option http-server-close #每次请求完毕后主动关闭http option forwardfor except 127.0.0.0/8 #后端服务器可以从http header中获得客户端IP option redispatch #serverid服务器挂掉以后强制定向到其他健康服务器 retries 3 #3次连接认为服务不可用 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m #客户端连接超时 timeout server 1m #服务器连接超时 timeout http-keep-alive 10s timeout check 10s maxconn 3000 #集群最大连接数 #haproxy有两种集群的格式 #frontend 名称 *:80 # use_backend abc #backend abc # balance roundrobin #算法 # server web1 # server web2 #第二种 #listen 名称 *:80 # balance roundrobin #算法 # server web1 # server web2 #--------------统计页面配置------------------ listen stats bind 0.0.0.0:1080 #监听端口 stats refresh 30s #统计页面自动刷新时间 stats url /stats #统计页面url stats realm Haproxy Manager #进入管理界面查看状态信息 stats auth admin:admin #统计页面用户名和密码设置 listen server bind 0.0.0.0:80 balance roundrobin server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5 server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5 #加了check开启健康检查
3)启动服务器并设置开机启动
systemctl restart haproxy.service
systemctl enable haproxy
查看网页状态,在浏览器输入http://192.168.4.5:1080/stats ,测试调度器是否正常工作,用户密码都是我们刚刚配置文件定义的,用户admin,密码admin
备注
Queue队列数据的信息(当前队列数量,最大值,队列限制数量)
Session rate每秒会话率(当前值,最大值,限制数量)
Sessions总会话量(当前值,最大值,总量,Lbtot:total number of times a server was selected 选中一台服务器所用的总时间)
Bytes(入站,出站流量)
Denied(拒绝请求,拒绝回应)
Errors(错误请求,错误连接,错误回应)
Warning(从新尝试警告retry,重新连接redispatches)
Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量,down机服务器数量、down机时长)
我们关闭web1服务器,查看调度器是否能正常显示
可以看出调度器成功识别web1已经不能工作
再次重新启动,调度器成功识别
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。