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

相关推荐
dj15402252038 小时前
group_concat配置影响程序出bug
android·bug
布值倒区什么name8 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
码农派大星。8 小时前
软件测试--BUG篇
功能测试·bug
国王不在家8 小时前
【bug日志-水】解决本地开发下代理和url同名导致刷新404的问题
bug
阿伟来咯~10 小时前
一些 uniapp相关bug
uni-app·bug
生命几十年3万天1 天前
通宵修bug
bug
LilKevinRay1 天前
【SpringMVC】记录一次Bug——mvc:resources设置静态资源不过滤导致WEB-INF下的资源无法访问
java·笔记·mvc·bug
会发光的猪。2 天前
前端vue3若依框架pnpm run dev启动报错
前端·javascript·vue.js·前端框架·bug
小汤猿人类3 天前
苍穹外卖Bug集合
bug
且行且知4 天前
CubeIDE BUG-project‘hello‘has no explict encoding set hello
bug