记一次线上BUG排查过程

1. 线上遇到一个非常奇怪的bug,为一个用户分配业务线类型后,该用户登录时,提示502,但其它的用户登录完全是正常的

2. 问题现象

在这里插入图片描述
在这里插入图片描述

3. 排查思路

  1. 先去看线上日志,看是否有error,但日志里边这个接口200正常返回
  2. 本地debug,也复现一样问题,在分配角色类型超过22个总数时就报错
  3. 怀疑长度问题,因为我们是基于jwt的token认证方式
  4. 看下login之后签发的token特别长,有没有可能是token的问题呢?
  5. 查看线上ng日志,发现报错: 2023/09/13 05:46:42 [error] 23#23: *80 upstream sent too big header while reading response header from upstream, client: xxx.xxxx.xxx.xxx, server: yyy, request: "POST /api/menu/get_menu HTTP/1.1".
    确认token长度是已超4kb大小,
  6. 我们线上是ng代理,ng对于请求header的长度也是4kb限制
  7. 最终因为业务代码在jwt的Claims添加了额外用户信息,这个会导致随着分配用户越来越多的bizType签发的token长度增加,最终超过4kb的总大小,导致ng出现502的错误

4. 解决方案

  1. 修改ng配置,添加以下配置
    # http段添加如下内容:
    proxy_buffer_size 128k;
    proxy_buffers 32 32k;
    proxy_busy_buffers_size 128k;
    
  2. 把token的签发,移除bizType数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django系列:Django的项目结构与配置解析

Django系列 Django的项目结构与配置解析 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/132893616 【介…

Nginx配置最佳实践

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

2023/9/18 -- C++/QT

作业 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…

【论文阅读 05】图像异常检测研究现状综述

1 图像异常检测任务 图像异常检测任务根据异常的形态可以分为定性异常的分类和定量异常的定位两个类别. 定性异常的分类:整体地给出是否异常的判断,无需准确定位异常的位置。 如图2左上图所示, 左侧代表正常图像, 右侧代表异常图像, 在第1行中,模…

企业电子招投标采购系统源码——功能模块功能描述+数字化采购管理 采购招投标

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

国家高新技术企业认定六个必要条件详细解读!

相信很多企业都想认定高新技术企业,因为认定成功的高新技术企业,可以享受很多政府资助政策,为公司创造很多便利条件。 但是,很多企业对于高企认定的条件却比较迷糊,今天至善科技为大家解读一下国家高新技术企业认定的六…

Maven 安装配置

Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …

node 之 express 框架(初级)

一、express 热更新 1、安装扩展 npm install node-dev -D2、在根目录下的 package.json 文件中进行配置 3、之后的启动执行下面的命令即可 npm run dev二、mvc中的 模板引擎 1、ejs模板引擎的安装 npm install ejs -s2、在根目录下的app.js文件中配置 app.set(view engin…

第21章_瑞萨MCU零基础入门系列教程之事件链接控制器ELC

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

腾讯mini项目-【指标监控服务重构】2023-08-16

今日已办 v1 验证 StageHandler 在处理消息时是否为单例,【错误尝试】 type StageHandler struct { }func (s StageHandler) Middleware1(h message.HandlerFunc) message.HandlerFunc {return func(msg *message.Message) ([]*message.Message, error) {log.Log…

沈阳建筑大学《乡村振兴战略下传统村落文化旅游设计》 许少辉八一著作

沈阳建筑大学《乡村振兴战略下传统村落文化旅游设计》 许少辉八一著作

怎么推广自己抖店的商品?最适合0经验新手操作的办法,来看看

我是王路飞。 抖店开通后,想要把自己店铺的商品卖出去,就需要进行推广了。 但是怎么推广呢? 要么利用抖音的搜索和推荐流量,获取曝光,实现点击和转化。 不过这种玩法有个弊端,就是需要你有一定的电商经…

农民朋友有福利啦!建行江门市分行“裕农通+农资结算”平台正式上线

随着广东广圣农业发展有限公司办公室内的裕农通“智慧眼”结算机“叮”的一声到账提醒,标志着全国首个“裕农通农资结算“平台的成功上线,也标志着建行广东省江门市分行的裕农通业务又迈上了一个新的台阶。 广东广圣农业发展有限公司(以下简…

FTP这么“好用”和“便宜”,为什么企业还要替换掉?

FTP是一种历史悠久的网络协议,自1971年问世以来,它因其简易性、便捷性以及强大的跨平台兼容性而被广泛使用。在网站开发、软件更新和数据备份等多个场景中,FTP都发挥了重要作用。不过,随着互联网技术的不断发展和企业需求的多样化…

Linux线程

1.进程是资源管理的最小单位,线程是程序执行的最小单位。 2.每个进程有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程,它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路径,每个线程共享其所附属进程的所有资源,包括…

蓝桥杯 题库 简单 每日十题 day4

01 津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津…

【笔试强训选择题】Day43.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

【QT5-解决不同分辨率屏幕-进行匹配大小-适应屏幕大小-基础样例】

【QT5-解决不同分辨率屏幕-进行匹配大小-适应屏幕大小】 1、前言2、实验环境3-1、问题说明-屏幕视频3-2、解决方式-个人总结解决思路:我们在软件启动的时候,先获取屏幕大小,然后根据长宽,按照一定比例,重新设置大小。并…

VMware17 不可恢复错误mks解决方案

用的虚拟机VMware17版本,然后运行带HDR的unity程序,结果报错 网上找了很多解决方案,都没用。毕竟需要在不放弃虚拟机3D加速的情况下运行。 最终皇天不负有心人,亲测有效的方法: 在虚拟机名字.vmx文件里添加以下2行&a…

URL 管理器

基本介绍 对外接口 对外提供两个接口:一个可以提取URL,一个可以增加URL,分别对应图上的1和2。 当要爬取某个网页时,则可以从1接口提取出该网页的URL进行爬取。 有时候爬取的网页内容中会包含别的网页链接,即包含有U…