WAF+SLB负载不均衡案例分享

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
Web应用防火墙 3.0,每月20元额度 3个月
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 问题演变过程 时间点1:高防+WAF+SLB+2台ECS时间点2:高防+WAF+SLB+4台ECS 问题描述 在时间点1时,没有发现明显的负载不均衡的情况。在时间点2时,出现大部分请求都打到了其中一台ECS上。

作者:枫凡

问题演变过程

时间点1:高防+WAF+SLB+2台ECS
时间点2:高防+WAF+SLB+4台ECS

问题描述

在时间点1时,没有发现明显的负载不均衡的情况。在时间点2时,出现大部分请求都打到了其中一台ECS上。需要定位问题原因

问题梳理

  • 问题链路
    是SLB后端的ECS出现负载不均衡的请求,那么直接影响这个转发算法的,是WAF以及SLB。那么和高防没有关系了。

image.png

  • 配置情况
  1. SLB:TCP监听,WRR转发算法,开启会话保持
  2. WAF:无特殊配置,域名直接回源负载均衡IP

问题点1:轮询算法+会话保持

措施:尝试修改轮询算法为WLC,会话保持时间调短。
然而这个优化措施效果并不明显,由于开启了会话保持,那原有负载不均衡的情况下,调整WRR算法到WLC的算法,没有实现预期的WLC。

但是从另外一个角度来说,如果源IP非常分散的场景下,即使有会话保持,理论上还是应该在经过一个较长的时间段之后,依然能够到达均衡。
这里由于是使用WAF的回源地址进行访问,所以对负载均衡来说,客户端的公网IP地址是固定的,一直是固定的几个;从而调整WLC+会话保持的调整收效甚微。

问题点2:会话保持模板刷新问题

措施:尝试关闭会话保持。
稍有成效:关闭会话保持后,经过一段时间的通信,4台ECS初步的开始均衡,但是到了一个固定值之后;没有继续均衡,一直保持着1:2的状态。
这里有2个知识点
1、WLC算法的计数开始是从调整为这个算法的时间点开始的;那么如果历史开始就出现不均衡,那么开启后还是会不均衡的。
2、由于WAF的回源地址与SLB的通信一直在,没有断过所以历史的会话保持的效果依然存在,已经会话保持的IP,依然会发给对应负载均衡的RS,导致不均衡。

推荐的解法为:使用负载均衡的权重功能,将连接数多的机器的权重调低,待4台机器的连接数基本均衡后,将RS的权重都调整为一致。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 安全 网络协议
绕过WAF和多个防护软件提权案例
绕过WAF和多个防护软件提权案例
178 0
|
4月前
|
运维 负载均衡 Serverless
Serverless 应用引擎使用问题之如何将应用部署到多个实例中,并利用SLB来分发请求负载
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
存储 负载均衡 算法
负载均衡案例:如何只用2GB内存统计20亿个整数中出现次数最多的整数
负载均衡案例:如何只用2GB内存统计20亿个整数中出现次数最多的整数
103 2
|
6月前
|
存储 弹性计算 负载均衡
SLB-工作负载(Workload)
SLB-工作负载(Workload)
155 0
|
数据采集 负载均衡 搜索推荐
Nginx负载均衡的详细配置及使用案例
Nginx负载均衡的详细配置及使用案例
|
负载均衡 Java Nacos
restTemplate loadbalance 负载均衡使用demo 案例 原理以及全网最细源码解析
restTemplate loadbalance 负载均衡使用demo 案例 原理以及全网最细源码解析
restTemplate loadbalance 负载均衡使用demo 案例 原理以及全网最细源码解析
|
SpringCloudAlibaba 负载均衡 Java
SpringCloud之Feign实现声明式客户端负载均衡详细案例
SpringCloud之Feign实现声明式客户端负载均衡详细案例
739 0
SpringCloud之Feign实现声明式客户端负载均衡详细案例
|
SpringCloudAlibaba 负载均衡 Cloud Native
【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)
【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)
225 0
【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)
|
负载均衡 算法 前端开发
nginx 作为负载均衡服务器应用案例| 学习笔记
快速学习 nginx作 为负载均衡服务器应用案例。
nginx 作为负载均衡服务器应用案例| 学习笔记
|
负载均衡 算法 应用服务中间件
Nginx——反向代理 & 负载均衡(无理论,案例实操)
Nginx——反向代理 & 负载均衡(无理论,案例实操)
Nginx——反向代理 & 负载均衡(无理论,案例实操)