• ⑦.haproxy的cookie植入


    HAProxy基于cookie实现客户端会话保持
    使用ip_hash时,如果有众多用户使用相同的公网地址去访问同一个服务时,由于这些用户所使用的公网IP都为同一个,HAproxy就会把他们调度到同一后端的服务器,由此可能造成后天的单台服务器的压力过大,因此需要其他的方法来进行调度。
    HAProxy可以实现插入一层cookie,当用户第一次访问会查看是否有cookie,如果没有就在响应报文中插入以程cookie返回给客户端,当用户再次访问就会根据cookie来调度请求。lvs和nginx无法实现

    cookie
    为当前server指定cookie值,实现基于cookie的会话黏性

    cookie NAME [rewrite|insert|prefix] [indirect] [nocache] [postonly] [preserve] [httponly] [secure] [domain <domain>] [maxidle<idle>] [maxlife<life>]
    NAME: cookie名称,用于持久连接
    rewrite: 重写。如果之前有cookie就会覆盖了重写,或插入到前缀上
    insert: 插入
    prefix: 前缀
    nocache: 当client和haproxy之间有缓存存在时,不缓存cookie
    

    基于cookie实现会保持
    修改配置文件,添加cooke选项

    backend app
        balance     roundrobin
        cookie Haproxy_Cookie insert nocache              #定义一个key
                                                          #未服务器打赏标签  为value
        server  app1 192.168.1.254:80 check   cookie web1
        server  app2 192.168.1.254:81 check   cookie web2
    


    haproxy实现cookie植入,实现会话保持:

    1.定义key:  SERVERID
    2.定义value:为server段中的每个节点起一个名称;  cookie name
    3.当用户请求时,haproxy会下发一个httpheader信息,  Set-Cookies: SERVERID:web01
    4.当浏览器在次请求haproxy会在request中增加一个header: cookie: SERVERID:web1
    5.已便实现会话保持的方案:
    
    
    ip_hash: 基于来源ip进行hash取模,已便实现会话保持;
    cookie植入:haproxy很容易实现,Nginx也可以实现,需要三方模块(自行完成一下)
    session共享:基于Redis实现;
  • 相关阅读:
    Jumpserver之安装在CentOS主机步骤
    Nginx负载均衡后端健康检查(支持HTTP和TCP)
    Nginx负载均衡后端健康检查
    ELK之使用packetbeat分析网络包流量
    ELK之使用heartbeat监控WEB站点
    ELK之elasticsearch导致CPU居高不下系统慢解决办法
    Saltstack如何修改主机名或者minion id
    mac中使用 sourcetree 的快速配置和git服务器登录
    [转]从三层架构迈向领域驱动设计 — 关于领域设计中描述相对简要及明了的一篇文章
    io-nio 区别示意图
  • 原文地址:https://www.cnblogs.com/yangtao416/p/16502227.html
Copyright © 2020-2023  润新知