首页 > 其他分享 >记录前端排查net::err_empty_response的过程

记录前端排查net::err_empty_response的过程

时间:2024-11-29 18:00:07浏览次数:6  
标签:调用 请求 err 问题 nginx api https net response

问题描述:

  项目框架:vue+elementui

  部署环境:k8s nginx

  项目部署到测试环境,登录到首页,或者刷新首页(刷新6、7次必现)会偶现如下几个错误,但是生产环境和本地没有问题,且https访问没问题,但是http访问会有问题。出现问题之后会导致页面空白。

    Err_empty_response、ERR_CONTENT_LENGTH_MISMATCH、ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 

          

 排查过程:

  一、排除登陆验证跳转引起的问题

  根据错误信息(Err_empty_reponse   ERR_CONTENT_LENGTH_MISMATCH)百度得到的结论都是请求还未返回就被中断了,或者是请求还未被完全接收(可能只接收的一半)请求就被中断了,考虑到请求被中断,第一想到的是,因为这个项目是单点登陆,所以在刷新页面的时候,会去判断是否已登陆,刷新的时候store的isLogin的状态会丢失,所以会去请求是否登陆,浏览器的url会跳转,验证完成之后会在跳转到当前页面,想着是否跳转引起的js还未加载完成就刷新的页面,所以就去把跳转的代码注释了,写死登陆信息,在测试环境验证还是有问题,就排除了这个问题。

  二、排除包太大引起的 

    因为我这边出现的一直是打包后的app.js报错,所以想着是否是因为打包的js文件过大引起的,所以就更改的vue.config.js文件,分包让js变小一点,但是部署后测试依然发现还是有这个问题

 

             

 

 

 

  三、排除http访问时但是转发了https的请求

    因为https并没有问题,百度有说代码里面有https的请求,说在http中访问了https的请求导致的,把代码中的https的请求全部换成http,部署测试依然不行

 

  

  四、排除nginx的缓存大小和缓存临时目录没有权限

   根据net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)这个错误提示,百度搜索说是nginx的缓存太小或者是nginx的临时目录过大或没有权限写入缓存文件,但是我调整(改缓存大小,给权限、禁用缓存)之后,在部署依然还是有这个问题,同时测试了关闭proxy缓存依然有问题

 

           参考:https://www.cnblogs.com/youcong/p/13828579.html

 

           

        

 

  五、排除nginx配置问题

   考虑到相同的部署环境,其他的项目都可以,为什么就这个项目不行,想着会不会配置不一样导致,所以去比对了其他的项目和本项目nginx和k8s的配置,把不同的地方都改成了一样,部署之后测试发现依然不行。

 

  六、注释首页的请求(已经差不多快要定位到问题了) 

  测试发现这个项目的首页刷新要发送37个请求,而其他的项目只有20多个,想着是不是因为请求太多了造成的,是不是服务做了限流?于是就把这个页面的所有初始化要请求的api全部注释了(只是为了减少请求数量,初始化时会调用好几个接口初始化数据),再部署测试发现竟然可以了(纯属瞎猫碰上死耗子),然后再一点点的打开api请求,验证问题,发现这个页面的查询api(created钩子函数中调用查询接口)只要调用了项目就有问题,想着这个api是再created生命周期函数中,想着是不是太早了,改到mounted之后依然不可以,想着可能是和这个查询方法有关系,就一点点的注释代码验证确实具体是哪行代码引起,发现就是调用这个api有问题。

 

  七、排除重复刷新引起问题

   上面发现mounted调用这个接口有问题,就想打印日志看一下,有没有错误信息,后来发现这个mounted页面竟然调用了两遍,就想着会不会和这个有关系,然后调整了代码,mounted只调用一遍(初始化有些参数变更会自动刷新页面导致两次调用),测试发现依然不可以。

  

  八、postman验证api

 

  想着是不是就是api本身有问题(因为api有时候是可以调通的,所以之前没有想过是api的问题),单独把这个api拿出来放到postman验证,发现缺有问题,概率性的掉不通,但大部分情况可以通,并且其他的api并没有这个问题,所以想着应该不是api的问题,会不会是这个api请求不通的时候,是因为请求根本没有到达nginx就中断,于是就去k8s上各种查找错误,但是nginx服务并没有错误信息,nginx的error.log和access.log 都没有错误信息。使用tcpdump抓包发现调用api如果有问题,就抓不到包。

 

  九、与后端api同事联调

  因为在服务器上一直找不到原因,所以想着会不会是防火墙什么的对这个api做了特定的设置限流了,于是让后端的同事重新写了一个接口(就是换个名字),测试发现还是不行。想着是不是返回结果有敏感信息导致的,就让后端的同时把api的结果写死,不返回数据。结果测试发现竟然可以了。说明就是api的原因,然后后端同事一点点的注释代码测试发现是这个api又调用的其他服务的api,只有把这个调用注释之后就没问题。

 

  十、继续排查api的问题

  虽然定位到是后端api的问题了,但是为什么这个api有时候可以有时候不可以,后端的同事还在排查,排查清楚之后我再更新。。。。。

 

标签:调用,请求,err,问题,nginx,api,https,net,response
From: https://www.cnblogs.com/tarrying/p/18577212

相关文章

  • windows下netstat及网络查看工具的使用
    1.打开cmd:win+R输入cmd2.查看工具相关指令可以看到相关指令能配置查看的内容3.查看相应内容例如我想查看当前主机UDP协议所使用的端口:netstat-ano-pUDP同理查看TCP所使用的端口:netstat-ano-pTCP二、windows自带的网络监视工具的使用1.打开资源管理器快捷......
  • Nuxt.js 应用中的 render:response 事件钩子
    title:Nuxt.js应用中的render:response事件钩子date:2024/11/29updated:2024/11/29author:cmdragonexcerpt:render:response是一个在Nuxt.js中与服务器端渲染(SSR)相关的钩子,它会在请求的响应发送之前被调用。这个钩子的目的是让开发者可以在响应发送之前对响应进......
  • 【AIGC】阻击Flux!SD 3.5也出官方ControlNet了!
    前段时间,Flux团队放出了FluxTools,而这两天StabilityAI也出了SD3.5的官方ControlNet模型了,目前模型和代码已经开源本次放出的三个ControlNet模型是针对8B的SD3.5Large模型,包括三个模型:Blur,Canny,Depth。有需要可以扫描下方,免费获取其中Blur模型类似ControleTil......
  • Winform Jenkins ClickOnce打包,基于.net FramWork4.8
    背景:winform客户端基于.NETFramwork4.8,并且基于Msbuild命令进行ClickOnce打包。在Linux下,Msbuild无法使用,且无法安装.NETFramwork4.8,于是Jenkins部署在WindowServer上1.在Windows服务器安装Jenkins,并启动。安装教程百度,建议安装新版本 2.在windows服务器采用vs_BuildTools.......
  • Online Anomalous Subtrajectory Detection onRoad Networks with Deep Reinforcement
    该代码采用计算图的方式进行计算编码RSRNetdetermine做奖励的计算reward=explore(model,observations,labels,text,SRN,batched_data)策略优化ASDNet中explore做的动作就是在做预测,并会记录这里的值用作后面的计算是的,你理解得对。ep_as存储的动作实际上就是......
  • Linux netstat 命令详解
    简介netstat全称是:networkstatistics,是一个用于监控、排除网络连接故障、路由表的命令行工具,它提供关于网络统计和socket连接的详细信息。安装sudoaptinstallnet-tools#ForDebian/Ubuntusudoyuminstallnet-tools#ForCentOS/RHEL常用选项示例查看所有连接......
  • .NET Core 异步(Async)底层原理浅谈
    简介多线程与异步是两个完全不同的概念,常常有人混淆。异步异步适用于"IO密集型"的场景,它可以避免因为线程等待IO形成的线程饥饿,从而造成程序吞吐量的降低。其本质是:让线程的cpu片不再浪费在等待上,期间可以去干其它的事情。要注意的是:Async不能加速程序的执行,它只能做到不......
  • 记一次 .NET某hdp智能柜系统 卡死分析
    一:背景1.讲故事停了一个月时间没有更新博客了,主要是这段时间有些许事情导致心神不宁,我这个人也比较浮躁所以无法潜心修炼,事情如下:被狗咬了也不知道是不是出门没看黄历,在小区门口店里买烟,被店老板家狗来了个猝不及防,天降横祸。让店老板赔了个疫苗钱,人生第一次被狗咬,第一次打......
  • Error starting ApplicationContext. To display the conditions report re-run your
    ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.2024-11-2815:35:25.856ERROR12216---[     main]o.s.b.d.LoggingFailureAnalysisReporter : ***************************A......
  • 十一、Kubernetes调度-亲和力与反亲和力-Affinity-AntiAffinity
    亲和力Affinity存在的问题:某些Pod优先选择有ssd=true标签的节点,如果没有在考虑部署到其它节点,如其他没有标签,会pending;某些Pod需要部署在ssd=true和type=physical的节点上,但是优先部署在ssd=true的节点上;会有优先级;同一个应用的Pod不同的副本或者同一个项目的应用尽......