Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 660|回复: 0

会话保持之iRule脚本

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-20 14:31:11 | 显示全部楼层 |阅读模式

拓扑


思路:

Web上的请求,很大程度上需要在后端一台服务器上运行,而不能将请求1,与请求2分别在不同的真实机上。所以,就需要使用会话保持技术了。F5的会话保持有内置的,如简单会话保持,就是根据客户端ip地址而更新会话表的.还有cookie等,今天,我在这里演示的是通过iRule脚本来控制会话保持的,让其请求一直访问在某一台真实机上.


在没有使用此脚本的情况下,我们通过firefox强制刷新访问,结果:

它会在两台真实机上轮询访问,此时我们想让一个客户端的访问能固定到某一台真实机上,那么我们可以选择F5自带的会话保持,或者我们想要更灵活的机制来控制,这里我就想到了在后端真实机上来定制cookie的名字来做到灵活性,web脚本如下:

<?php

$value = "php_web03";

setcookie("TestCookie",$value);

echo "This is web03!"

?>

<?php

$value = "php_web04";

setcookie("TestCookie",$value);

echo "This is web04!"

?>

iRule脚本如下:
when HTTP_REQUEST {

if { [HTTP::cookie exists "TestCookie"] } {

#log "[HTTP::cookieTestCookie]"

persist uie [HTTP::cookie "TestCookie"]

}

}

when HTTP_RESPONSE {

if { [HTTP::cookie exists "TestCookie"] } {

persist add uie [HTTP::cookie "TestCookie"]

}

}

iRule脚本挂到vs资源里,再去强刷,结果:

在这里有几个知识点需要掌握的:

1.F5会话保持负载均衡过程


2. persist uie [HTTP::cookie"TestCookie"]
如果找到,则查询会话保持表,根据匹配结果将请求发送到对应的服务器上

3. persist add uie [HTTP::cookie"TestCookie"]
将服务器与找到的Cookie 内容进行对应



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-7-17 12:25 , Processed in 0.041611 second(s), 12 queries , Apc On.

快速回复 返回顶部 返回列表