作者:平凡王子轶 | 来源:互联网 | 2023-06-06 22:39
实验环境
主机名 | IP | 服务 |
---|
虚拟机server1 | 172.25.6.1 | haproxy,httpd,服务端 |
虚拟机server2 | 172.25.6.2 | httpd,php,客户端 |
虚拟机server3 | 172.25.6.3 | httpd,php,客户端 |
物理机 | 172.25.6.250 | 测试端 |
一、HApronxy实现负载均衡的配置过程
1.从官网获得一个HAproxy的安装包,解压安装包
2.将源码包打包成一个rpm包
(1)查找.spec文件 (有这个文件才能把一个源码包打成rpm包)
find . -name *.spec
(2)安装编译工具rpm-build gcc pcre-devel
yum install -y rpm-build gcc pcre-devel
(3)编译安装包
rpmbuild -tb haproxy-1.7.3.tar.gz
编译完成之后会出现一个rpmbuild目录,rpm安装包在这个目录中
3.安装rpm包
rpm -ivh haproxy-1.7.3-1.x86_64.rpm
4.编辑haproxy的配置文件
(1)haproxy的配置文件在源码包中
content-sw-sample.cfg 是haproxy的默认配置文件
(2)将这个文件复制到/etc/haproxy目录下
(3)编辑配置文件
vim haproxy.cfg
globalmaxconn 10000 ##最大连接数stats socket /var/run/haproxy.stat mode 600 level adminlog 127.0.0.1 local0uid 200 ##haproxy用户的uidgid 200 ##haproxy用户的gidchroot /var/emptydaemondefaultsmode http ##默认使用http的7层模式 tcp:4层log globaloption httplogoption dontlognullmonitor-uri /monitorurimaxconn 8000timeout client 30soption prefer-last-serverretries 2option redispatchtimeout connect 5stimeout server 5sstats uri /admin/stats# The public 'www' address in the DMZ
frontend publicbind *:80 name clear ##监听所有端口#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem#use_backend static if { hdr_beg(host) -i img }#use_backend static if { path_beg /img /css }default_backend dynamic ##默认使用dynamic后端服务器集群# the application servers go here
backend dynamicbalance roundrobin ##负载均衡算法rr(轮循)server web1 172.25.6.2:80 check inter 1000 ##后端服务器server2server web2 172.25.6.3:80 check inter 1000 ##后端服务器server3
5.server2和server3安装httpd,编辑测试页,开启服务
(1)server2
yum install -y httpd
vim /var/www/html/index.html
/etc/init.d/httpd start
(2)server3
yum install -y httpd
vim /var/www/html/index.html
/etc/init.d/httpd start
6.server1开启haproxy服务
/etc/init.d/haproxy start
7.物理机测试:访问server1出现轮循调度
8.物理机上浏览器访问http://172.25.6.1/admin/stats出现监控页面,f5可以刷新,f12可以进入控制台
【F12】
(1)关闭server2的httpd服务,f5刷新,可以看到监控发生变化
【web1显示DOWN】
(2)再次打开server2的httpd服务,刷新后监控恢复正常
【web1显示ON】
9.物理机上浏览器访问http://172.25.6.1/monitoruri出现200 OK 说明haproxy服务正常