# 统一登录导致OA慢
# 1. 问题现象描述
客户反馈通过域名访问OA打开表单速度很慢,直接使用IP地址访问OA节点速度很快;且排查发现: 1、域名解析指向ng服务器,不是OA服务器; 2、客户试过改host,绕过ng服务器,直接指向oa服务器,但仍然很慢
# 2. 排查步骤&解决方案
# 2.1 复现问题抓取慢请求
根据F12跟踪信息,未发现耗时特别慢的请求,整个页面加载过程,较为明显的是有部分耗时500ms的接口,且加载顺序是串行的,导致整个页面的加载时间明显变长:8s~10s
以IP直接登录OA节点再次打开这个页面查看,发现原问题接口请求耗时很短,没有原来500ms的问题
再次以域名登录访问,页面单独访问之前耗时500的接口,可以稳定复现(当前域名解析的地址是单独IP访问使用的)
# 2.2 服务器端抓包验证
再次复现问题,并通过tcpdump在服务器上抓包分析,发现确实是后端响应慢,不是在网络层面导致
# 2.3 通过curl命令尝试复现问题
服务器端通过curl命令,复制jsessionId尝试模拟请求:
- 使用页面上可以稳定复现时的JessionId,也通过域名访问
- 服务器上和客户端使用该命令均未复现
再次复制页面上F12中问题请求的所有请求头,通过curl再次模拟,服务端和客户端问题均可以复现; 可以判断是由于请求头中的参数导致,最后经过测试,发现是由于cookie中带了token导致请求变慢(500ms)
# 3. 解决方案
经确认该token是由统一认证时生成,也就是域名登录实际上是经过了统一认证;如果直接通过oa节点访问,是否使用域名均不会复现问题 实际原因:统一认证的token导致部分接口耗时500ms,转客开排查解决(页面串行加载的接口大部分是致迈和客开的,也可以优化这部分逻辑处理该问题)
创建人:wangyxyf