用例:限制会话的数量
在这个用例中,需求是限制活动后端会话的数量。在部署中,每个会话登录在URL中都有login,每个会话注销在URL中都有logout。登录成功后,后端会设置一个唯一的10个字符的session id cookie。
要实现此用例,请执行以下操作:
创建一个可以存储每个活动会话的映射变量。映射的键是会话id。变量的过期时间设置为600秒(10分钟)
>添加变量session_map -type map(text(10),ulong,100) -expires 600
为映射变量创建以下赋值:
为会话id创建一个表项,并将该值设置为1(此值未被使用)
$session_map[http.req.cookie.value("sessionid")]' -set 1
释放会话ID的条目,它隐式地减少session_map的值计数
> add ns assign delete_session -variable '$session_map[http.req.cookie.value("sessionid")]' -clear
为创建响应器策略
检查HTTP请求中该会话id是否存在映射条目。如果映射表项不存在,则执行add_session分配
>添加响应器策略add_session_pol 'http.req.url.contains("example") || $session_map.valueExists(http.req.cookie.value("abc"))' add_session
注意:add_session_pol策略中的valueExists()函数被视为对会话映射条目的引用,因此每个请求都会重置其会话的过期超时。如果10分钟后没有收到会话请求,则会话条目将被释放。
检查会话何时注销。执行delete_session赋值
add responder policy delete_session_pol "http.req.url.contains(\"Logout\")" delete_session
检查登录请求以及活动会话数量是否超过100。如果满足这些条件,为了限制会话的数量,用户将被重定向到表示服务器繁忙的页面
添加响应器动作redirect_too_busy重定向"/too_busy.html"添加响应器策略check_login_pol "http.req.url.contains(\"example\") && $session_map。valueCount > 100" redirect_too_busy
全局绑定响应器策略
绑定响应器全局add_session_pol 30 next绑定响应器全局delete_session_pol 10绑定响应器全局check_login_pol 20
用例:限制会话的数量
在本文中
复制!
失败了!