记一次线上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数据

相关推荐
cat_with_cat30 分钟前
测试:BUG篇
bug·测试
黑客飓风33 分钟前
Bug排查日记的技术
bug
Wiktok6 小时前
[Wit]CnOCR模型训练全流程简化记录(包括排除BUG)
python·深度学习·bug
玄尺_0076 小时前
bug:uniCloud报Business Failed, 参数有误retry invoke error
数据库·bug
程序猿阿伟7 小时前
《云原生边缘与AI训练场景:2类高频隐蔽Bug的深度排查与架构修复》
人工智能·云原生·bug
夕阳UPdz13 小时前
深入探索 Unity 错误排查过程:从“滚动条问题”到“鼠标悬浮异常”
bug
I still …1 天前
面向OS bug的TypeState分析
bug
欢脱的小猴子2 天前
VUE3加载cesium,导入czml的星座后页面卡死BUG 修复
前端·vue.js·bug
boonya4 天前
国内外常用的免费BUG管理工具选型
bug