当前位置:首页 > F5BIGIP标准配置安装文档
会话保持主要用于将同一个客户端发出的多个连接分配到同一台服务器上。在一些情况下,比如对应用服务器的负载均衡,从一个用户通常会发出多个连接来完成整个交易。并且在服务器端会对每一个用户分配一个Session ID和一些其他的相关资源,这些资源通常存放在服务器的内存里。这时,如果同一用户的多个请求被分配到不同的服务器上,则会出现服务器拒绝服务的情况。所以在对此类应用,我们通常需要配置会话保持。
BIGIP内存放有一张会话保持表,记录会话与后端服务器的对应关系。如果在Pool中配置了会话保持,则在BIGIP运行过程中,未在会话保持表中有对应项的新建的联接将会命中Pool的负载均衡策略,然后BIGIP在会话保持表中加入该记录。而已经在会话保持表中的新建联接将会根据会话保持的策略去往对应的服务器。
常用的会话保持有两种,基于IP的会话保持和基于浏览器客户端的Cookie会话保持。基于IP的会话保持主要是根据源地址进行。此时BIGIP将同一IP认为是同一用户,凡是同一IP过来的连接均发往同一服务器。基于IP的会话保持通常在大量客户端都为不同IP地址时使用。
基于浏览器客户端的Cookie会话保持主要是通过在BIGIP上插入、修改或读取Cookie方式实现。插入或修改的Cookie会按照BIGIP的格式进行插入,并且进行加密处理,不会泄露任何与用户相关的信息,具有良好的安全性。
选择左侧菜单Pools,出现Pool列表,然后选择需要配置的Pool。点击进入后,选择顶部的Persistence选项。出现以下页面:
3.4.2 Simple会话保持
25
Simple会话保持即基于源地址的会话保持方式。
配置Simple Persistence则选中Simple选项,在Timeout中填入需要保持的时间,通常该时间需要大于服务器端的Timeout时间。Mask选项主要用于将源地址分组,位于同一掩码网段的所有客户端在BIGIP上只存在一条记录。如掩码为255.255.255.0时,则所有位于同一C网段的用户都会被认为是同一用户而分配到同一台服务器上。 3.4.3 Cookie 会话保持
通常情况下,我们采用Insert Cookie的方式来保持对应用的最小修改量。在服务器不发放Cookie的情况下最为适合。不需要对服务器做出任何改动。
26
通常我们选用Active HTTP Cookie中的Insert模式,将时间值设置为0,则在浏览器未关闭之前,将持续使用该Cookie与BIGIP进行通讯。
3.5 iRules配置
Rules配置是BIGIP灵活处理的部分,在通常情况下,不需要配置Rules,此处可作一个了解,实际需要配置Rules的时候请与F5工程师联系。
当一个连接到达Virtual Server的时候,如果它没有命中当前的Session表,BIGIP系统可以通过执行rule来选择一个相关的pool。Rule可以根据特定的数据比如IP包头来直接将流量转到相应的pool。例如,Rules可以配置为判断以下条件:
是否在数据包中包含以”cgi”作为结尾的HTTP请求? 是否数据包的源地址是以八进制“206”为开头? 是否在TCP的数据包中包含字符串“ABC”?
另外,可以通过创建一个rule来对用户请求进行重定向,比如host name,目标端口或者URI路径。Rules包含statements and expressions。在Expressions中,你可以使用许多元素,比如函数,表达式运算符,literal或者运算符。
根据内容交换的需求不同,Rules的创建可以简单也可以复杂。下面给出了一个简单的rule的例子。这个例子中将包含.gif和.html的连接送往cache_pool,其他的流量都送往pool server_pool。
if ( http_uri ends_with \
27
use ( cache_pool ) } else {
use ( server_pool ) }
Rule配置举例:
在系统左侧的菜单中选择Rules,然后点击ADD按钮。
选择Rule Builder则进入简单的Rule配置界面
28
共分享92篇相关文档