实验环境:
4台Linux服务器,两台做Web服务器,1台安装HAProxy,1台做客户端,实现如下功能:
- 客户端访问HAProxy,HAProxy分发请求到后端Real Server
- 开启HAProxy监控页面,及时查看调度器状态
- 设置HAProxy为开机启动
一 web1 和web2服务器的配置:
1.配置apache-保证页面能访问
2.配置web1和web2的rip分别为:192.168.2.100 192.168.2.200
二 部署HAProxy服务器
HAProxy服务器需要配置 DIP为:192.168.4.5,VIP为:192.168.2.5
1)配置网络,安装软件
- [root@haproxy ~]# echo 'net.ipv4.ip_forward = 1' >> sysctl.conf //开启路由转发
- [root@haproxy ~]# sysctl -p
- [root@haproxy ~]# yum -y install haproxy
2)修改配置文件
- root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
- global
- log 127.0.0.1 local2 ###[err warning info debug]
- chroot /usr/local/haproxy
- pidfile /var/run/haproxy.pid ###haproxy的pid存放路径
- maxconn 4000 ###最大连接数,默认4000
- user haproxy
- group haproxy
- daemon ###创建1个进程进入deamon模式运行
- defaults
- mode http //http网站代理,默认的模式mode { tcp|http|health (健康检查)} log global #采用全局定义的日
- option dontlognull ###不记录健康检查的日志信息
- option httpclose ###每次请求完毕后主动关闭http通道
- option httplog ###日志类别http日志格式
- option forwardfor ###后端服务器可以从Http Header中获得客户端ip
- option redispatch ###serverid服务器挂掉后强制定向到其他健康服务器
- timeout connect 10000 #如果backend没有指定,默认为10s
- timeout client 300000 ###客户端连接超时
- timeout server 300000 ###服务器连接超时
- maxconn 60000 ###最大连接数
- retries 3 ###3次连接失败就认为服务不可用,也可以通过后面设置
- listen stats 0.0.0.0:1080 #监听端口
- stats refresh 30s #统计页面自动刷新时间
- stats uri /stats #统计页面url
- stats realm Haproxy Manager #统计页面密码框上提示文本
- listen webs 192.168.4.5:80
- balance roundrobin //vim /usr/share/doc/haproxy-1.5.18/configuration.txt ,可以查看算法
- server web1 192.168.2.200:80 check inter 2000 rise 2 fall 5 //2000ms检查一次,如果连接5次以后还是失败的则认为该 服务器坏了,当服务器恢复时,将来连接2次后确定服务器是好的
- server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5
三。启动服务器并设置开机启动
1.[root@haproxy ~]# systemctl start haproxy 2.[root@haproxy ~]# systemctl enable haproxy
客户端验证:
客户端配置与HAProxy相同网络的IP地址,并使用火狐浏览器访问http://192.168.4.5,测试调度器是否正常工作,(配置文件中的蓝色字体关联)
curl http://192.168.4.5 会轮询出现web1 web2 的配置文件
客户端访问http://192.168.4.5:1080/stats测试状态监控页面是否正常。访问状态监控页的内容(配置文件中红色字体相关联)