报错日志:
日志如下:
验证码的null,是从shiro.getSession.getAttribute("验证码key值");
单台服务器的流程上,先将验证码放在session里,之后在登陆时,将session里的验证码同输入的验证码进行匹配,匹配不上,就报错,不让登陆。
多服务器时,导致这问题的缘由是:session 没有在两台服务器上共享。
验证码存进A服务器,取的时侯,是从B服务器去拿。即用户的操作,分开在两台服务器上,没有负载均衡。
由于该环境是测试环境,在外网操作。故不走nginx的负载均衡。
最后是运维通过更改配置(具体不懂)实现了session的分发。
另外可了解的是nginx的负载均衡:
【nginx】配置Nginx实现负载均衡