-
haproxy的原理:
- 提供高可用、负载均衡以及基于TCP(四层)和HTTP(七层)应用的代理,支持虚拟主机,开源可靠的一款软件。
- 适用于哪些负载特别大的web站点,这些站点通常又需要回话保持和七层处理。
- haproxy运行在时下的硬件上,完全可以支持数以万计的并发连接。
-
haproxy的特性:
- 可靠和稳定性非常好,可以与硬件级的F5负载均衡设备相互媲美
- 支持8中负载均衡算法,也支持会话保持
- 拥有强大的ACL支持,用于访问控制
- 支持客户端的keepalived功能,减少客户端与haproxy的多次三次握手导致资源量费,让多个请求在一个tcp连接中完成。
- 自身带有详细的健康状态检测
- 日志分析器,可对日志进行分析
-
配置文件:
-
haproxy.cfg主要有两部分组成:global和proxies配置段
- global:全局配置
- 进程及安全配置相关的参数、性能调整相关的参数、Debug参数
-
proxies:代理配置段
- defaults:为为frontend, backend, listen提供默认配置
- fronted:前段,相当于nginx,server{}
- backend:后端,相当于nginx,upstream{}
- listen:同时拥有前段和后端,适用于一对一环境
- global:全局配置
-
-
本章实验配置:
- haproxy调度器:192.168.8.8
- 网站节点1:192.168.8.9
-
网站节点2:192.168.8.10
-
1.配置调度器:
- 安装haproxy:
- yum -y install haproxy
-
vim /etc/haproxy/haproxy.cfg
- #定位63行 frontend main *:80 (将后面端口修改为80)
-
修改backend字段:
- server real_server1 192.168.8.9:80 check inter 10000 rise 1 fall 3 weight 1
- server real_server2 192.168.8.10:80 check inter 10000 rise 1 fall 3 weight 1
-
配置解释:
- balance (roundrobin):轮询算法
- check inter 1000:每隔1000毫秒检测一次
- rise 1:检测成功一次立即加入群集中
- fall 3:检测失败三次,立即标记为不可用
- weight 1:权重值为1
- 启动服务:systemctl start haproxy
-
2.分别在8.9和8.10服务器上安装nginx,修改网页,测试轮询
-
web1:
- yum -y install nginx
- echo "web1" > /usr/share/nginx/html/index.html
- systemctl start nginx
-
web2:
- yum -y install nginx
- echo "web2" > /usr/share/nginx/html/index.html
- systemctl start nginx
-
- 3.使用浏览器访问:
- http://192.168.8.8
- 刷新网页,实现了web1和web2之间的切换
- http://192.168.8.8
-
4.添加监控页面配置在haproxy.cfg配置文件中:
-
vim /etc/haproxy/haproxy.cfg
-
添加在最下方即可:
- listen admin_stats
- bind *:11001
- mode http
- stats refresh 30s
- stats uri /admin
- stats realm welcome login\ Haproxy
- stats auth admin:admin123
- stats admin if TRUE
- 重启服务:systemctl restart haproxy
-
-
通过访问网页方式,查看监控页面
-
http://192.168.8.8:11001/admin
- 用户名:admin
- 密码:admin123
-
-
-
5.配置haproxy session会话保持:
- vim /etc/haproxy/haproxy.cfg
-
修改backend 字段更换为:
- backend app
- mode http
- option redispatch
- option abortonclose
- balance source
- cookie SERVERID
- option httpchk GET /index.html
- server app1 192.168.8.9:80 cookie server1 check
- server app2 192.168.8.10:80 cookie server2 check
-
- 点击刷新发现不会再轮询了,这就代表会话保持实现了
- vim /etc/haproxy/haproxy.cfg
-
Haproxy负载均衡介绍即部署
努力转型的IT小王2024-03-31 18:37
相关推荐
架构师Wu老七3 小时前
【软考】系统架构设计师-信息系统基础朝九晚五ฺ5 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级Kkooe6 小时前
GitLab|数据迁移久醉不在酒7 小时前
MySQL数据库运维及集群搭建虚拟网络工程师8 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)BLEACH-heiqiyihu8 小时前
RedHat7—Linux中kickstart自动安装脚本制作哔哥哔特商务网9 小时前
一文探究48V新型电气架构下的汽车连接器007php0079 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案MXsoft61810 小时前
华为服务器(iBMC)硬件监控指标解读19004310 小时前
linux6:常见命令介绍