会话保持之iRule脚本

拓扑

思路:

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 内容对应


你可能感兴趣的:(F5,iRule)