一.了解HAproxy
1、haproxy是什么
HAproxy是一个软件,提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
2、haproxy的优缺点
优点:实现了一种事件驱动,单一进程模型,可以支持数以万计的并发连接。(多进程模型受内存限制、系统调度器限制和锁限制等等,很少能处理数千并发连接),支持虚拟主机。
缺点:在多核系统上,这些程序通常扩展性较差。
二.配置HAproxy的反向代理负载均衡
此实验用到了一台服务器:madao1,ip为172.25.2.1
两台后端服务器:
madao2,ip为172.25.2.2
madao3,ip为172.25.2.3
1、安装haproxy
命令 | 功能 |
yum search haproxy | 查找haproxy的相关包 |
yum install haproxy -y | 安装haproxy |
2、配置haproxy服务器
vim /etc/haproxy/haproxy.cfg
行号 修改的内容
63 frontend main *:80 #设置监听ip:端口(所有:80端口)
64 # acl url_static path_beg -i /static /images /javascript /sty lesheets
65 # acl url_static path_end -i .jpg .gif .png .css .js
67 # use_backend static if url_static
68 default_backend app #调用的后端组名为app
81 balance roundrobin #负载均衡的方式为轮循方式
82 server app1 madao2:80 check #madao2为添加过解析的一个主机名,对应了一台后端服务器
83 server app2 madao3:80 check #madao3同上
systemctl restart haproxy
3、配置后端服务器
在两台后端服务器上都进行以下配置
命令 | 功能 |
yum install httpd -y | 拿apache做测试,所以下载httpd |
systemctl start httpd | 开启httpd服务 |
vim /var/www/html/index.html | 创建或修改该文件 |
this is madao2 #在后端服务器madao2上写入该内容,区分madao3的页面
this is madao3 #在后端服务器madao3上写入该内容
命令 | 功能 |
systemctl restart httpd | 重启httpd服务 |
4、在客户端测试
<1>terminal中测试
命令 | 功能 |
curl madao1 | curl服务器测试 |
@ this is madao2 | 显示madao2后端服务器的页面(意味着反向代理配配置成功) |
curl madao1 | curl服务器测试 |
@ this is madao3 | 显示madao3后端服务器的页面 |
curl madao1 | curl服务器测试 |
@ this is madao2 | 显示madao2后端服务器的页面(意味着轮循是正常的的) |
curl madao1 | curl服务器测试 |
@ this is madao3 | 显示madao3后端服务器的页面(轮循没问题) |
<2>浏览器中测试
命令 | 功能 |
madao1 | 访问服务器域名 |
@ this is madao2 | 显示madao2后端服务器的页面(意味着反向代理配配置成功) |
madao1 | 访问服务器域名 |
@ this is madao3 | 显示madao3后端服务器的页面 |
madao1 | 访问服务器域名 |
@ this is madao2 | 显示madao2后端服务器的页面(意味着轮循是正常的的) |
madao1 | 访问服务器域名 |
@ this is madao3 | 显示madao3后端服务器的页面(轮循没问题) |