F5的会话保持 理解
1.什么是会话保持
在多数的应用系统中,一个客户需要与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于几次交互的过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几次交互过程的结果。服务器进行下一步操作时要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡服务器分散到不同的服务器。
而这一系列的相关交互过程可能由客户到服务器的一次连接的多次会话完成,也可能是客户与服务器之间的多个不同连接里的多次会话完成。不同链接的多次会话,最典型的例子就是基于http的访问,一个客户完成一笔交易可能需要多次点击,而一个新的点击请求,可能基于上一次点击建立起来的连接,也可能是一个新建的连接。
会话保持就是指在负载均衡器上有这么一种机制,可以识别客户与服务器之间交互过程的关联性,在作负载均衡的同时,还保证一系列关联的访问请求保持分配到一台服务器上。
2.F5支持什么样的会话保持?
F5 BIG-IP支持多种的会话保持方式,其中包括:简单的会话保持(基于源地址)
cookie HTTP session HTTP Header
2.1简单的会话保持
简单会话保持也被称为基于源地址的会话保持,是指负载均衡器在做负载均衡时是根据访问请求的源地址作为判断关联会话的依据。对来自于同一ip地址的所有访问请求在作负载均衡时都会保持到一台服务器上去。
简单会话保持里另外一个重要的参数就是连接超时值,BIGIP会为每一个进行会话保持的会话设定一个时间值,当一个会话上一次完成到这个会话下次再来之前间隔小于这个超时值,BIGIP将会将新的连接进行会话保持,如果这个间隔大于超时值,BIGIP将会将新来的连接认为是新的会话进行负载平衡
2.2 基于Cookie的会话保持
2.2.1 Cookie插入模式:
在Cookie插入模式下,BIG-IP将负责插入cookie ,后端服务器无需进行修改
2.2.2 cookie重写模式:
当客户进行第一次请求时,客户http请求进行 BIG ip ,BiG-IP根据负载均衡算法选择后端的一台服务器,并将请求发送给服务器,后端服务器进行http回复一个空白的 cookie并发回BIGIP,然后BIGIP中心在cookie写入会话保持的数值,将HTTP回复返回客户端。当客户再次发生时,客户http请求(带入上次写的cookie)进行BIG_IP,然后读出数值选定服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过BIGIP时,BIGIP再次写入更新后会话保持数值到该 cookie。
2.2.3 Passive Cookie模式 服务器使用特定的信息来设置cookie
2.2.4 Cookie Hash 模式
当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后 BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入 BIGIP,然后BIGIP根据cookie里的一定的某个字节的字节数来决定后台服务器接受请求,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新后的cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该 cookie的请求回复给客户端。
2.3 SSL Session ID 会话保持
在用户的SSL访问系统的环境里,当SSL对话首次建立时,用户与服务器进行首次信息交换以:1.交换安全证书,2.商议加密和压缩方法,3.为每条对话 建立Session ID。
由于该Session ID在系统中是一个唯一数值,由此,BIGIP可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIGIP可以通过会话中的 SSL Session ID识别该用户并进行会话保持。
基于Session ID 的会话保持就需要客户浏览器在进行会话的过程中 始终保持SEssion不变,实际上,发现微软internet Explorer被发现经过特定的时间后将主动改变SSL Session ID,这就使SSL Session ID的会话保持应用范围大大缩小。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构