云原生(基于 Cookie 的会话保持,HAProxy 状态页实验)

实验简介

该实验旨在优化 HAProxy 的负载均衡策略,实现更精细的会话保持效果:

  1. 核心目标 :默认source算法仅能让同一客户端主机(无论浏览器)固定访问某一后端服务器,而通过 Cookie 优化后,可实现同一客户端的同一浏览器绑定到特定后端服务器,不同浏览器则分配不同服务器。
  2. 配置要点 :在 HAProxy 配置文件中定义webcluster监听段,启用轮询(roundrobin)负载均衡,指定hash-type consistent,并通过cookie WEBCOOKIE insert nocache indirect插入 Cookie;为两台后端服务器(192.168.0.10/20)分别配置cookie web1/web2标识,同时设置健康检查参数(如check inter 3s)和权重。
  3. 验证效果:分别用 Firefox 和 Edge 浏览器访问,验证不同浏览器会被分配到不同的后端服务器,同一浏览器则持续访问同一服务器。

HAProxy 状态页实验

该实验聚焦于 HAProxy 自身运行状态的可视化监控配置:

  1. 核心目标:配置 HAProxy 的状态监控页面,实现对负载均衡集群的运行状态、后端服务器健康度等信息的实时查看。
  2. 基础配置 :在 HAProxy 配置文件中新增stats监听段,指定 HTTP 模式、绑定 4321 端口,启用状态统计(stats enable),设置状态页访问路径(stats uri /status),并配置认证(stats auth lee:lee),重启服务后可通过账号密码访问状态页。
  3. 进阶优化 :添加stats refresh 1配置实现状态页 1 秒自动刷新,便于实时监控;还可模拟后端设备下线,验证状态页能及时反映服务器健康状态变化。
  4. 价值:通过状态页可直观查看后端服务器的在线状态、流量分配、健康检查结果等,是运维 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 
相关推荐
分布式存储与RustFS13 小时前
RustFS 多协议接入全景:S3 之外,Swift/Keystone 与 SFTP/FTPS 怎么选
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS17 小时前
在 Kubernetes 上用 RustFS Operator 给 Tenant 开 KMS 加密:spec.encryption 实战
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
Seoyoneh20 小时前
呼叫中心系统云原生架构演进:传统自建与云端部署的技术实现对比分析
云原生·架构
2601_9622184720 小时前
万象生鲜系统订单全生命周期追踪实现生鲜企业订单业务数字化可视
大数据·运维·微服务·云原生·架构
分布式存储与RustFS1 天前
RustFS 1.0 GA 前的生产验收清单:从 rc.1 到 GA 该准备什么
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
Henry-SAP2 天前
SAP PP 反冲机制业务解析
人工智能·云原生·sap·erp
A-刘晨阳2 天前
K8s集群中的数据库新范式:KES-Operator解锁部署、扩缩容、备份全链路自动化
运维·数据库·云原生·kubernetes·自动化
江畔柳前堤2 天前
云原生 × AI 全景图谱:从 Kubernetes 到 Agent 基础设施的一次认知跃迁
人工智能·分布式·gpt·云原生·kubernetes·原型模式·agi
天机玄正2 天前
云运维高阶二:CLI 调用 API (白名单追随)
windows·云原生
Ningcode_cloud2 天前
Kubernetes 弹性伸缩实验手册:从集群搭建到 HPA / VPA 自动扩缩容
云原生·k8s·prometheus