分行特色登陆异常排查、跨域理解

分行特色无法登录

上午报分行特色无法登录。验证:域名和aam都无法跳转;登录服务器56.57都能正常打开,无法跳转。应用服务器无正常返回。初步判断是应用服务器挂了。

提单、用户,去到机房准备重启解决。然后登录.9,大概看了下硬盘没问题,然后发现./无权限停止、启动服务。原来是sunrise上周升级tomcat配错了权限,给到了window下启动的bat,没有给当前linux下启动的sh。此外看到bin下边很多heapdump文件,于是意识到某些接口引发了内存溢出。进而判断sunrise这货上周升级tomcat没有配置启动内存等, 用的是默认的。然而去catalina文件下看了,内存没问题,启动和最大都是6G。于是先用sh启动了服务。 .10没有这个问题,所以.9启动后分行特色就恢复了。

拿下来log,很低嗨地跑了三趟:
第一趟把heapdump、error、最新的log取下来了,然而拿的是10服务器的日志,误以为服务器的日志都是打印到10的,然而一般应用服务器是不会跨机器打印日志的。
第二趟没有根据heapdump文件的时间去拿日志,去.9随便拿了最新的两三个下来了。三趟才搞定

拿下来日志后直接搜outofmemorey,发现了20来处,大部分是公共接口查足迹、用户收藏等信息的,有一个是export类型的接口,于是怀疑这个接口报错。找到这个系统发现非常不友好,一进来该菜单要等三四十秒去查询。然后翻页又要等几十秒。怀疑是做的假分页,每次都是查全量。但是一顿分析发现人家1做了分页,2虽然表有几千万条数,但查出来下载导出只有一千来条,瞬间就能完成。内存溢出不是这个接口干的,虽然这个接口查询做的很慢、日志记录也很有问题,但就不是他。

怀疑是之前已经有人把内存感到了临界值,然后没记在日志里。最后把heapdump文件扔给系统组分析。

跨域问题

之前一直无法理解,为什么加一层代理能解决跨域?

首先跨域是浏览器端为了防止一些页面恶意修改别人的资源,规定了同源的接口才能互相访问(同ip、端口、协议)。那我加了一层代理,由代理访问到服务端,还是不同源啊?代理地址肯定≠服务端地址。为什么解决了跨域呢?

因为跨域是只在浏览器端存在的,要么是父级窗口通过iframe等方式内嵌了子页面(网点通、ctp4),要么是前后端分离的架构,前端浏览器调用后端接口。此时前者通过不要跨域名调用父级方法(网点通的top改window)、后者通过前端访问代理地址+后端加开放访问,都可以解决。前端访问代理地址为什么能解决?因为nginx代理去访问后端,就不是浏览器去访问后端了,即使依然不同源,就已经不存在跨域这个专门给浏览器使用的概念了!所以加一层代理解决跨域,实际就是变浏览器访问为nginx去访问,降维打击跨域问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值