zoukankan      html  css  js  c++  java
  • haproxy 基于 cookie 的会话保持

    haproxy cookie session persist

    feat

    1. 请求会转发给配置了相同cookie的server
    2. 会转发给weight=0的后端
    3. 默认不会转发给down状态或disabled的server
      1. 如果设置了option persist或者force-persist,则会强制转发给down状态或者disabled的server;同时如果配置了option redispatch,则尝试请求down状态的server失败后,仍然会将请求转发给其他up状态server
    4. 如果配置了ignore-persist if|unless $acl_condition,则满足acl规则的请求,会发送给所有的后端,而不是匹配cookie的后端

    示例

    # 客户端请求将被转发给具有相同cookie值的后端
    backend be1
        # 设置响应的Set-Cookie头部
        # 参看cookie policy 
        cookie $cookie_name $cookie_ops_policy $other_params
    
        server serv1 cookie $cookie_value
    
    1. 设置的cookie和server返回的cookie不重名

      1. rewrite 啥也不干
      2. insert 在响应中增加设置的cookie
      3. prefix 啥也不干
    2. 设置的cookie和server返回的cookie重名

      1. rewrite
        设置该cookie的值为server配置中设置的$cookie_value
      2. insert

        默认移除server返回的cookie,然后增加该cookie;如果设置了preserve,则不会修改server返回的cookie;如果设置了indirect,请求转发给后端时,会删除该cookie
      3. prefix

        在server返回的cookie的值前加上server配置中设置的$cookie_value~前缀,比如server返回A, server配置中设置了B,那么返回给客户端的cookie值为B~A

    是否转发给down或者disabled的server

    1. force-persist if|unless $acl_condition
      1. 根据acl规则,将请求强制转发给down或者disabled的server
    2. option persist
      1. 强制尝试转发给down 或者disabled的server

    取消某些请求的cookie persistence

    1. ignore-persit if|unless $acl_condition
      1. 根据acl规则,取消某些请求的cookie persistence特性,这些请求将按照转发策略,发给所有的后端
      2. 一般用于静态内容的请求,或者其他无需会话保持的请求
    1. 配置了option redispatch, 当会话保持选择的后端无法处理新的请求时(比如请求过多,后端down掉),会尝试分发请求到其他后端,从而让会话保持失效

    客户端多次收到Set-Cookie头部

    1. haproxy 会每隔4s重新设置一次cookie,暂未找到可以配置的选项,此时客户端始终收到的是同一个cookie值
    2. 发生redispatch,此时客户端将收到不同的cookie值
  • 相关阅读:
    秒转 时间格式 JavaScript seconds to time with format hh:mm:ss
    jQuery ajax表单提交实现局部刷新 ajaxSubmit
    jquery mobile header title左对齐 button右对齐
    Java数据库ResultSet转json实现
    jsp 局部刷新
    ajax提交url 与ajax提交表单的比较
    jquery + json + springMVC集成在controller中实现Ajax功能
    js获取url中指定参数值
    jquery ajax 局部刷新
    jquery ajax jsonp callback java 解决方案2
  • 原文地址:https://www.cnblogs.com/zhedan/p/14246973.html
Copyright © 2011-2022 走看看