实验简介
基于 Cookie 的会话保持实验
该实验旨在优化 HAProxy 的负载均衡策略,实现更精细的会话保持效果:
- 核心目标 :默认
source算法仅能让同一客户端主机(无论浏览器)固定访问某一后端服务器,而通过 Cookie 优化后,可实现同一客户端的同一浏览器绑定到特定后端服务器,不同浏览器则分配不同服务器。 - 配置要点 :在 HAProxy 配置文件中定义
webcluster监听段,启用轮询(roundrobin)负载均衡,指定hash-type consistent,并通过cookie WEBCOOKIE insert nocache indirect插入 Cookie;为两台后端服务器(192.168.0.10/20)分别配置cookie web1/web2标识,同时设置健康检查参数(如check inter 3s)和权重。 - 验证效果:分别用 Firefox 和 Edge 浏览器访问,验证不同浏览器会被分配到不同的后端服务器,同一浏览器则持续访问同一服务器。
HAProxy 状态页实验
该实验聚焦于 HAProxy 自身运行状态的可视化监控配置:
- 核心目标:配置 HAProxy 的状态监控页面,实现对负载均衡集群的运行状态、后端服务器健康度等信息的实时查看。
- 基础配置 :在 HAProxy 配置文件中新增
stats监听段,指定 HTTP 模式、绑定 4321 端口,启用状态统计(stats enable),设置状态页访问路径(stats uri /status),并配置认证(stats auth lee:lee),重启服务后可通过账号密码访问状态页。 - 进阶优化 :添加
stats refresh 1配置实现状态页 1 秒自动刷新,便于实时监控;还可模拟后端设备下线,验证状态页能及时反映服务器健康状态变化。 - 价值:通过状态页可直观查看后端服务器的在线状态、流量分配、健康检查结果等,是运维 HAProxy 集群的重要可视化手段。
基于cookie的会话保持
#配合基于cookie的会话保持方法
[root@haproxy yxs]# vim /etc/haproxy/haproxy.cfg
listen webcluster
bind *:80
balance roundrobin
hash-type consistent
cookie WEBCOOKIE insert nocache indirect
server haha 192.168.0.10:80 cookie web1 check inter 3s fall 3 rise 5 weight 2
server hehe 192.168.0.20:80 cookie web2 check inter 3s fall 3 rise 5 weight 1
[root@haproxy yxs]# systemctl restart haproxy.service
测试
edge

chrome

HAProxy状态页
[root@haproxy yxs]# vim /etc/haproxy/haproxy.cfg
listen stats
mode http
bind 0.0.0.0:4321
stats enable
log global
# stats refresh
stats uri /status
stats auth lee:lee
[root@haproxy yxs]# systemctl restart haproxy.service
登录测试


开启自动刷新
[root@haproxy yxs]# vim /etc/haproxy/haproxy.cfg
listen stats
mode http
bind 0.0.0.0:4321
stats enable
log global
stats refresh 1
stats uri /status
stats auth lee:lee
[root@haproxy yxs]# systemctl restart haproxy.service

模拟设备下线
[root@webserver1 yxs]# systemctl stop httpd.service
