记录一次腾讯CLB负载均衡引起的线上问题

迁移至腾讯云后,用户反馈无法上传大文件。排查过程中发现,问题源于CLB的stgw配置,默认client_max_body_size为60MB,导致上传失败。调整配置后恢复正常。
上上周五我司把部分项目从阿里挪到了腾讯的服务器,其中负载均衡也理所当然的从之前阿里的SLB换成了CLB。
迁移完之后,突然就有用户反映大文件上传不上去,类似这种:

在这里插入图片描述

于是乎,我去日志里面去看日志,发现根本就没有日志,连nginx的请求日志都没有。这不应该呀,于是呼我用postman尝试着调用了一下,结果返回的是下面这个,(先记住下面那一行,一会会用到)
在这里插入图片描述

这里的413一看就是nginx那一层给报的,在我反映给运维之后,我自己也去跳板机连线上服务器,去看nginx配置,结果发现配置的client_max_body_size为1个G,完全够用,PS:我们业务代码限制的最大上传为80MB,用户上传的文件为70左右的文件。
运维得知这个413问题后,也是无厘头,后来我突然想起来,nginx的info也没有,那说明没有走到nginx这一层,后来我又突然想到了负载均衡,他会不会是在进行转发之前就已经被挡住了,然后结合上面413的那个图片,发现是stgw而不是nginx,这说明啥,说明是stgw这个玩意配置问题,stgw是啥呢?根据我目前的理解他就是腾讯负责负载均衡转发的一个web服务器,和nginx类似,里面的配置项大体一致。其中client_max_body_size的默认配置为60MB,
在这里插入图片描述

虽然知道了这个,但是咱作为一名小小的码农,小小的打工人,根本就没有权限去腾讯控制台看这些东西的配置啊,当时运维又不在,无奈之下,只好先找leader帮忙查看一下,我们leader是PHP出身的,所以对于这些配置也是明白的。在腾讯的负载均衡控制台有一个七层个性化配置项,然后就可以在里面配置这些信息了,配置说明可以看这个链接https://cloud.tencent.com/document/product/214/15171?from=10680
在老大给配置完最大上传限制之后,上传接口就好使了。

总结:后来运维说阿里的slb并没有这些配置,腾讯的clb却有限制,而这些配置也是最容易被忽略的。这真是一个大坑啊
阿里云CLB(Classic Load Balancer)负载均衡无效果且无法通过负载均衡IP连接到网站,可从多个方面排查并解决问题: ### 负载均衡配置检查 - **监听规则**:确认监听规则是否正确配置。比如监听协议、端口是否和后端服务器应用一致。若配置为HTTP监听,后端服务器需开启HTTP服务并监听对应端口。检查负载均衡的监听配置,确保协议(如HTTP、HTTPS)、端口等参数无误,且与后端服务器应用的配置相匹配。 - **后端服务器配置**:检查后端服务器的健康检查配置。健康检查路径要和后端服务器实际路径相符,否则负载均衡会误判后端服务器不健康而不转发请求。确保后端服务器的防火墙或安全组允许负载均衡的IP地址访问相应端口。 ```plaintext # 示例:配置健康检查路径为 /health backend web_servers mode http balance roundrobin option httpchk GET /health server s1 192.168.1.101:80 check inter 5s rise 2 fall 3 ``` ### 网络连通性检查 - **网络环境**:检查负载均衡和后端服务器是否在同一VPC(虚拟专用网络)内,不同VPC间若无正确的网络配置,会导致网络不通。同时,确认网络ACL(访问控制列表)是否限制了流量。 - **IP地址**:确认负载均衡IP地址是否正确,有无被防火墙或其他安全策略拦截。可通过ping命令测试负载均衡IP的连通性,若无法ping通,可能存在网络隔离或IP配置问题。 ### 安全组和权限检查 - **安全组规则**:检查负载均衡和后端服务器的安全组规则。负载均衡安全组要允许外部客户端访问监听端口,后端服务器安全组要允许负载均衡IP访问应用端口。 - **权限配置**:确保账号有足够权限操作负载均衡和后端服务器,权限不足可能导致配置无法生效。 ### 日志和监控检查 - **访问日志**:查看负载均衡的访问日志,确认是否有请求到达负载均衡。日志能显示请求的来源、目标、状态码等信息,有助于定位问题。 - **监控数据**:查看负载均衡的监控数据,如流量、连接数等指标。若流量为零,可能是配置问题或网络不通;若流量正常但无响应,可能是后端服务器问题。 ### 后端服务器状态检查 - **服务运行状态**:登录后端服务器,检查应用服务是否正常运行。可通过命令行工具(如netstat、ps等)查看应用端口是否监听,服务进程是否存在。 ```bash # 查看端口监听情况 netstat -tlnp | grep 80 # 查看进程状态 ps -ef | grep your_app_process_name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值