华为ELB session如何设置?,什么是ELB会话保持
- 前端开发
- 2026-08-11
- 6
华为云弹性负载均衡ELB的session_ELB功能,简单说就是让同一个用户的多次请求始终由同一台后端服务器处理,这对登录态保持、购物车、WebSocket这类场景至关重要,配置方法并不复杂。
华为云弹性负载均衡会话保持怎么配置
很多朋友第一次接触session_ELB时,容易把它和缓存、CDN搞混,其实它解决的核心问题是“认人”,负载均衡器站在多台服务器前面分派流量,如果今天把请求分给A机器,明天分给B机器,用户登录状态就丢了,session_ELB的作用就是让负载均衡器记住这个用户,后续请求都往同一台机器送。
会话保持的两种工作模式
华为云ELB会话保持支持两种方式,适用范围不太一样。
- 源IP地址会话保持:负载均衡器根据用户来源IP判断是否属于同一会话,这种方式配置简单,对所有应用都生效,但有个天然的短板,如果用户通过手机4G/5G网络访问,IP地址可能频繁变化,会话就会被切断,如果大量用户通过同一个出口IP访问(比如公司统一出口),流量会被集中到同一台服务器上,造成负载不均。
- Cookie会话保持(HTTP/HTTPS监听器专属):这是更精准的方案,ELB会向客户端植入一个包含会话标识的Cookie,后续请求带着这个Cookie,ELB就能精准识别用户身份,华为云支持自动生成Cookie和自定义Cookie两种模式,自动生成模式下,ELB自己管理Cookie的插入和过期;自定义模式则允许您指定后端应用生成的Cookie字段来识别会话,适合已有会话管理的业务。
从实际使用效果来看,HTTP/HTTPS服务建议优先使用Cookie会话保持,TCP/UDP监听器只能用源IP方式,这是协议特性决定的,无法绕过。
配置步骤和操作路径
具体操作路径如下,登录华为云控制台,进入弹性负载均衡服务,找到目标负载均衡器,进入监听器管理页面。
- 选择需要开启会话保持的监听器,点击“修改”按钮。
- 在“高级配置”区域找到“会话保持”开关,打开它。
- 根据监听器协议选择会话保持类型,HTTP/HTTPS监听器可以选择“源IP地址”或“Cookie”,TCP/UDP监听器只能选“源IP地址”。
- 设置会话保持超时时间,范围是1到60分钟,默认是10分钟,这个值需要根据业务实际来定,见下文详述。
- 点击“确定”保存配置,等待监听器状态变为“运行中”,配置即生效。
验证配置是否生效,可以登录后端服务器,查看访问日志中同一个客户端IP或Cookie标识是否持续落在同一台服务器上,如果分布在不同服务器,检查后端服务器组是否开启了“健康检查”,健康检查异常会导致会话被重新分配。

超时时间设置多少合适
ELB会话保持超时时间默认是10分钟,这个值对多数Web应用够用,但不同业务差异很大。
| 业务类型 | 建议超时时间 | 说明 |
|---|---|---|
| 电商购物车 | 20-30分钟 | 用户挑选商品可能耗时较长,太短会导致结算时会话丢失 |
| 银行/金融类 | 5-10分钟 | 安全要求高,超时后重新登录反而更安全 |
| WebSocket长连接 | 50-60分钟 | 推送类业务连接存活时间长,超时过短会频繁断连 |
| 内部管理系统 | 10-15分钟 | 操作频率较高,适中即可 |
如果超时时间设置过长,后端服务器出现故障时,会话保持会让故障机的用户一直失败,直到超时后才被重新分配,所以需要结合后端服务器的健康检查机制一起设计,多数情况下建议控制在30分钟以内。
华为ELB会话保持和nginx sticky模式区别
自己搭过负载均衡的同学,可能用过nginx的sticky模块或ip_hash,和华为云ELB的会话保持相比,它们在实现原理和运维成本上差别不小。
实现层面的差异
- nginx sticky:通过nginx的sticky指令,在响应中插入route Cookie,后续请求根据Cookie值做哈希路由。ip_hash则是通过对客户端IP做哈希计算,固定分配到某台上游服务器。
- 华为云ELB会话保持:在负载均衡器层面实现,对后端服务器完全透明,后端不用做任何代码改造,nginx方案则需要保证同一用户的所有请求都经过同一nginx节点,否则会失效。
运维和扩展性对比
- 集群扩展:nginx做负载均衡时,如果nginx节点超过一台,请求先被DNS轮询到不同nginx节点,每个nginx节点各自维护自己的会话表,会话就散了,华为云ELB是托管服务,多节点同步由云厂商处理,不存在这个问题。
- 持久化存储:nginx会话信息存在内存里,重启nginx所有会话丢失,华为云ELB的会话保持状态由服务端统一管理,负载均衡器升级或故障切换时,会话不会中断。
- 故障转移:nginx后端服务器宕机时,ip_hash会把该服务器的流量重新映射到其他服务器,但原来这台服务器的会话数据如果没有同步,用户依然会掉线,华为云ELB会先检查后端服务器健康状态,再决定是否将新请求转发过去,结合后端会话同步机制,可以更平滑地处理故障场景。
选型建议
行业共识认为,如果业务体量不大、运维能力较强,nginx自带方案够用,如果业务对稳定性要求高、希望减少运维精力,或者本身就在华为云上,直接用ELB的会话保持更省心,举个例子,一个华南地区的电商客户,原先用自建nginx做负载均衡,每逢大促活动前都要扩容nginx节点并手动同步配置,后来迁移到华为云ELB,扩容只需在控制台调整后端服务器数量,省去了很多重复劳动。

业务场景中会话保持的典型应用
会话保持不是所有业务都需要,但某些场景没有它业务就跑不通。
电商和登录态场景
电商网站的登录状态、购物车数据、结算流程都依赖会话保持,用户登录后,认证信息保存在服务器Session中,如果后续请求被分发到其他服务器,Session不存在,用户就被迫重新登录,开启Cookie会话保持后,整个购物流程都固定在一台服务器上,体验顺畅。
WebSocket和长连接场景
WebSocket建立连接后,客户端和服务器需要保持长连接,如果负载均衡器把后续的数据帧转发到其他服务器,连接就断了,华为云ELB对WebSocket支持良好,开启会话保持后,长连接可以稳定维持,在线客服、协同编辑、实时推送这类应用必须开启。
混合架构下需要注意的问题
如果业务同时使用了ELB和弹性伸缩服务,需要特别注意,弹性伸缩会自动增减后端服务器,当服务器被缩容移除时,正在该服务器上处理的会话会中断,建议在缩容前设置“优雅退出”,让服务器处理完当前请求再下线,后端应用需要做好Session的持久化,比如把Session存储到分布式缓存中,这样即使服务器变化,用户会话也不会丢失,据华为云官方文档说明,ELB会话保持和后端应用自身的Session管理机制并不冲突,两者可以配合使用。
华为云ELB价格怎么算
会话保持本身不额外收费,但了解ELB的整体计费方式有助于规划成本。
计费模型解析
华为云ELB按实例规格和LCU(Load Control Unit)双重维度计费,实例规格决定了最大连接数和每秒新建连接数上限,LCU则根据实际使用的连接数、请求数、带宽等指标计算,简单理解,规格是“座位数”,LCU是“实际上座率”。
- 按规格计费:适合流量波动不大、可预估峰值的业务。
- 按LCU计费:适合流量波动大、无法准确预估的业务,按实际用量付费。
不同地域的价格差异
华为云在不同地域的定价不完全一致,北京、上海、广州等核心地域价格相近,但一些海外地域或边缘节点会略有差异,具体价格可以在华为云官网的价格计算器中查询,输入地域、规格、计费方式即可获得估算结果,对于华北地区的中小企业用户,选择按LCU计费通常比固定规格更划算,因为业务初期流量较小,随着用户量增长再逐步调整规格即可。
常见问题排查和优化建议
会话保持配置不生效的情况并不少见,多数时候是几个容易被忽略的细节出了问题。
为什么配置了会话保持但没有生效
- 浏览器禁用了Cookie:Cookie会话保持依赖浏览器接受Cookie,如果用户浏览器设置禁止Cookie,ELB无法植入会话标识,会话保持自然失效。
- 后端服务器返回了Set-Cookie:如果后端应用自己生成了Cookie,且与ELB的Cookie冲突,可能覆盖掉ELB的会话标识,华为云自定义Cookie模式可以解决这个问题,指定后端Cookie字段作为会话标识即可。
- 使用了HTTP/2:HTTP/2支持多路复用,同一个连接可以承载多个逻辑请求流,ELB的会话保持基于HTTP请求头中的Cookie字段识别,HTTP/2连接下需要确认Cookie是否正确传递。
- 后端服务器组开启了“全端口转发”:全端口转发模式下,会话保持策略可能受到端口变化的影响,需要确认监听器配置是否匹配。
优化会话保持的配置建议
- 后端应用尽量实现Session共享,用Redis或Memcached存储会话数据,这样即使ELB把请求转发到不同后端服务器,用户会话也不会中断,这是最稳妥的方案,相当于给会话保持加了一层保险。
- 合理设置超时时间,不要为了省事而设置成60分钟,超时时间越长,负载均衡器维护的会话表越大,后端服务器故障时受影响的用户也越多。
- 开启健康检查并设置合理的检查间隔和超时阈值,健康检查能及时摘除故障服务器,避免会话被转发到不可用的机器上。
关于session_ELB的常见问题解答
华为云ELB会话保持和负载均衡算法如何配合使用
ELB的负载均衡算法负责决定新会话分配到哪台后端服务器,会话保持负责让后续请求继续走同一台服务器,两者是先后关系,算法先做初始分配,会话保持再做后续绑定,轮询算法配合会话保持,可以实现新用户均匀分布,老用户请求稳定落在同一台机器上。
关闭会话保持后业务会怎样
关闭会话保持后,ELB不再维护用户与后端服务器的映射关系,每个请求都会独立执行负载均衡算法,对于无状态的应用(如纯API接口),关闭会话保持反而能实现更均匀的负载分布,提升整体资源利用率,但对于有状态的应用,用户操作会频繁中断,表现为页面反复要求登录、购物车数据丢失、WebSocket不断重连。
华为云ELB会话保持超时时间最长可以设置多少
华为云ELB会话保持超时时间最长可以设置为60分钟,如果业务需要超过60分钟的会话保持,建议结合后端应用的Session管理机制,通过自定义Cookie方式实现更长的会话控制,或者将Session数据持久化到外部存储,由应用层接管会话生命周期。